自 Xetex 弃用以来使用 Pandoc 进行 Markdown 到 PDF

问题描述 投票:0回答:3

在我的 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}

解决办法是什么?

latex markdown pandoc xetex
3个回答
20
投票

尝试用

--pdf-engine=xelatex
代替
--xetex

在 Pandoc 2.0 之前,于 2017 年发布,此选项称为

--latex-engine
。如果您有非常旧的 Pandoc 版本(使用
pandoc --version
检查),您可能需要使用此选项。


6
投票

这个问题的先前答案对我很有帮助,因为我几年前安装了 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 选项指定输出格式。

我希望我的小失误记录可以为某人节省一些时间。


0
投票

请参阅 pandoc 用户指南(或手册页)了解

--latex-engine
选项。

© www.soinside.com 2019 - 2024. All rights reserved.