在我的 MacBook (OSX Mountain Lion) 上,我曾经使用这个 Pandoc 命令将 Markdown 转换为 PDF:
$ markdown2pdf -N -o pandoc_output.pdf --xetex --toc --template=mytemplate.tex myfile.md
但是
markdown2pdf
不再起作用,并且 --xetex
中的 markdown2pdf -N -o ../../Desktop/pandoc_output.pdf --xetex --toc --template=mytemplate-headers-garamond_date.tex
选项已被弃用。
如果我这样做:
$ pandoc -N -o Desktop/pandoc_output.pdf --xetex --toc --template=mytemplate.tex myfile.md
我明白了:
pandoc: unrecognized option `--xetex'
但是如果我拿出
--xetex
并执行以下操作:
$ pandoc -N -o Desktop/pandoc_output.pdf --toc --template=mytemplate.tex myfile.md
然后我得到这个:
pandoc: Error producing PDF from TeX source.
! Package hyperref Error: Wrong driver option `xetex',
(hyperref) because XeTeX is not detected.
See the hyperref package documentation for explanation.
Type H <return> for immediate help.
...
l.3925 \ProcessKeyvalOptions{Hyp}
解决办法是什么?
尝试用
--pdf-engine=xelatex
代替 --xetex
。
在 Pandoc 2.0 之前,于 2017 年发布,此选项称为
--latex-engine
。如果您有非常旧的 Pandoc 版本(使用 pandoc --version
检查),您可能需要使用此选项。
这个问题的先前答案对我很有帮助,因为我几年前安装了 pandoc,但从未安装过 Tex Live。因此,我不知道我是否正确安装了它,因此输入整个路径可以帮助我看到它正在工作,如下所示:
pandoc --latex-engine=/usr/local/texlive/2012basic/bin/universal-darwin/xelatex
这是从 Pandoc 安装页面下载的 BasicTex 安装程序的默认安装位置。
我还忘记了使用
pandoc -D Latex >my-latex-template.tex
来生成模板。在提供 .tex 模板而不是我的 .html 模板(这导致“您没有 BEGIN {”错误)之后,我得到了 .PDF:换句话说,默认模板有效。
此外,我不准确地输入了
-t pdf
(上面未显示)以将 pdf 设置为输出格式,但这不正确。输出格式为 Latex,然后转换为 PDF。无需使用 dash -t 选项指定输出格式。
我希望我的小失误记录可以为某人节省一些时间。
请参阅 pandoc 用户指南(或手册页)了解
--latex-engine
选项。