Pandoc为什么不将.tex转换为.pdf而是将.md转换为罚款?

时间:2019-08-24 11:46:27

标签: windows markdown pandoc

我有许多Markdown文件,它们正在使用Pandoc转换为PDF-包括使用LaTeX选项折叠某些头文件。

如果我单步创建PDF(MD→PDF),这将起作用,但是,我需要对中间LaTeX文件执行一些附加步骤,因此我试图将Pandoc流程分为两步(MD→TEX) →PDF)-会产生“未定义的控制序列”错误。

我已将一步式潘多克生产的.tex文件与两步版本进行了比较,它们是相同的-包括产生错误的LaTeX软件包的相关\usepackage命令。 / p>

我正在Windows上运行,今天早上已将Pandoc更新到2.7.3,并更新了我的所有MiKTeX软件包。

产生此错误的最小测试文件:

test.md

% Title
% Author
% Date

Body text

title.tex

\setmainfont{Times New Roman}\fontsize{11pt}{11pt}\selectfont
\sectionfont{
    \setmainfont{Arial}
    \fontsize{32pt}{32pt}
    \selectfont
}

当我使用单步命令时,PDF可以正确产生而不会出现问题:

> pandoc test.md options.yaml -o test.pdf -f markdown+smart+tex_math_dollars -s -V block-headings -H fontoptions.tex -B title.tex -B title_logo.tex -B header.tex --pdf-engine=lualatex
lualatex: warning: running with administrator privileges
lualatex: warning: running with administrator privileges
lualatex: warning: running with administrator privileges

分两步运行时:

> pandoc test.md options.yaml -o test.tex -f markdown+smart+tex_math_dollars -s -V block-headings -H fontoptions.tex -B title.tex -B title_logo.tex -B header.tex

> pandoc test.tex -o test.pdf -f latex --pdf-engine=lualatex
lualatex: warning: running with administrator privileges
lualatex: warning: running with administrator privileges
lualatex: warning: running with administrator privileges
Error producing PDF.
! Undefined control sequence.
l.81 \sectionfont

1 个答案:

答案 0 :(得分:1)

第二步应该简单地是:

from tkinter.ttk import *
root = Tk()
root.geometry("460x100")
root.resizable(0,0)
root.title("Password Generator")

pw_label = Label(root, text="Password").grid(row=0, column=0, pady=4, padx = 4)
length_label = Label(root, text="Length").grid(row=2, column=0, pady=4, padx = 4)
pw_input = Entry(root, width=50)
length_input = Scale(root, from_=8, to=50, orient=HORIZONTAL, length= 300)
length_input.set(30)
pw_input.grid(row = 0, column = 1, pady=4, padx = 4)
length_input.grid(row = 2, column = 1, pady=4, padx = 4)
Button(root, text='Quit', command=root.quit).grid(row=3, column=2, sticky=W, pady=4)
Button(root, text='Generate', command=rand_pw).grid(row=2, column=2, sticky=W, pady=4)
Button(root, text='Copy', command=copy).grid(row=0, column=2, sticky=W, pady=4)

root.mainloop()

使用pandoc从LaTeX转换为PDF可能会丢失信息(因为pandoc无法代表所有TeX,更重要的是,pandoc将使用其自己的template。)