我正在使用 Pandoc 将我的 markdown 文件转换为不同的格式,包括html
和。但是使用 PDF,即使安装了它,docx
我也会收到消息,我甚至可以直接从 Cygwin 调用它。pdflatex not found
为什么 Pandoc 无法检测 Pdflatex,我该怎么做才能解决这个问题?
答案1
我刚刚遇到这个问题 - 我怀疑你安装了 Windows 版的 Pandoc。在 cygwin 中,如果你运行,which pandoc
是否会出现类似这样的结果/cygdrive/c/Program Files (x86)/Pandoc/pandoc
?
如果是这样,则似乎版本需要 Windows 样式的路径(例如 C:\path\to\pdflatex),但 cygwin 可能为其提供了类似“/path/to/pdflatex”的内容。
您可能会发现在 cygwin 环境中从源代码构建 pandoc 成功。
答案2
@Wiscocrew 的答案是正确的,但不幸的是,它比这稍微复杂一些。
pdflatex
Pandoc 允许你使用开关传递完整路径--latex-engine
(参见http://pandoc.org/README.html#options-affecting-specific-writers),但如果你只是做类似的事情
--latex-engine=`cygpath -w /usr/bin/pdflatex`
Pandoc 给出了不同的错误:pandoc.exe: latex-engine must be pdflatex, lualatex, or xelatex.
。出现此错误的原因是 Cygwin 的 pdflatex 是一个符号链接:
$ ls -lh /usr/bin/pdflatex
lrwxrwxrwx 1 myuser Domain Users 10 Mar 14 11:52 /usr/bin/pdflatex -> pdftex.exe
我的解决方法是将其复制/usr/bin/pdftex.exe
并/usr/local/bin/pdflatex.exe
传递给 Pandoc,如下所示:
pandoc Foo.md -o Foo.pdf --latex-engine='C:\\cygwin64\\usr\\local\\bin\\pdflatex.exe' -t latex -s