当我在 Mac 上使用 render{rmarkdown} 从 .Rmd 文件生成 pdf 文件时,出现错误消息
pandoc: pdflatex not found. pdflatex is needed for pdf output.
Error: pandoc document conversion failed
但是当我检查
时pdflatex -v
我得到了
pdfTeX 3.1415926-2.4-1.40.13 (TeX Live 2012)
kpathsea version 6.1.0
Copyright 2012 Peter Breitenlohner (eTeX)/Han The Thanh (pdfTeX).
There is NO warranty. Redistribution of this software is
covered by the terms of both the pdfTeX copyright and
the Lesser GNU General Public License.
For more information about these matters, see the file
named COPYING and the pdfTeX source.
Primary author of pdfTeX: Peter Breitenlohner (eTeX)/Han The Thanh (pdfTeX).
Compiled with libpng 1.5.10; using libpng 1.5.10
Compiled with zlib 1.2.7; using zlib 1.2.7
Compiled with xpdf version 3.03
pdflatex 已安装在我的机器中。
任何人都可以帮忙告诉我如何告诉 R 在哪里可以找到 pdflatex 吗?
非常感谢!
对于使用 ubuntu 的人来说,如果被困在这里,更好的选择(因为它是 1/5 大小)是使用:
sudo apt-get install texlive-latex-base
找到的
我发现在升级到 OS X Mavericks 后,我遇到了
pdflatex
“缺失”的问题(例如,在 RStudio 中检查包构建时,我收到了 error tools::texi2pdf pdflatex missing
消息)。
检查
/usr/texbin
是否存在。cd /usr/texbin
如果“没有这样的文件或目录”,那么您将需要创建一个指向安装的 texbin 的符号链接。我的在
/Library/TeX/Distributions/.DefaultTeX/Contents/Programs/texbin
ln -s /Library/TeX/Distributions/.DefaultTeX/Contents/Programs/texbin /usr/texbin
在终端中,检查
echo $PATH
的结果。确保 /usr/texbin
存在。如果它不存在,那么您需要将 /usr/texbin
添加到您的 PATH
变量中。如果您发现自己不得不弄乱
PATH
变量,安装最新版本的 MacTex 可能是更好的解决方案。
更新: OS X 10.11 El Capitan 不再允许写入
/usr
,因此最新版本的 MacTeX (2015) 现在在此系统上写入指向 /Library/TeX/texbin
而不是 /usr/texbin
的链接。
对于那些使用 Dunk 的答案(对于使用 UBUNTU 的人)遇到
Font <font> at <size> not loadable: Metric (TFM) file not found.
错误的人,你还需要:
sudo apt-get install texlive-fonts-recommended texlive-latex-recommended
不幸的是,这确实大大增加了 texlive 安装的大小,但它仍然是
texlive-latex-extra
安装大小的一半左右。
如果您还没有安装任何 Latex 东西,这可能会有所帮助。
环境:macOS Sierra
brew cask install basictex
(env) jluc@texbin$ pwd
/Library/TeX/texbin
(env) jluc@texbin$ ls | grep pdfla
lrwxr-xr-x 1 user wheel 6 13 Mar 10:36 pdflatex -> pdftex
(env) jluc@texbin$ ls /Library/TeX/texbin/pdflatex
lrwxr-xr-x 1 user wheel 6 13 Mar 10:36 /Library/TeX/texbin/pdflatex -> pdftex
/Library/TeX/texbin/pdflatex 是我们需要的,您不能引用 pdftex 符号链接和/或使用
realpath
,因为 pandoc
特别想查看 pdflatex
pandoc myfile.md --to=pdf -t latex -o myfile.pdf --latex-engine=/Library/TeX/texbin/pdflatex
对于那些因为同样的错误出现在他们的 Linux 发行版中而陷入困境的人。获取 pdflatex 例如Ubuntu 通过安装
sudo apt-get install texlive-latex-extra
它的软件太多了,但是需要例如knitr(rmarkdown-pdf-compilation)
截至 2020 年(MacOS Catalina)JL Peyret 的答案是最适用的。它应该稍微更新一下,因为 pandoc 中的
--latex-engine
选项已被弃用,取而代之的是新的 --pdf-engine
选项:
$ brew install --cask basictex
$ pandoc myfile.md --to=pdf -t latex -o myfile.pdf --pdf-engine=/Library/TeX/texbin/pdflatex
对于正在寻找不涉及添加或安装更多软件包的可能解决方案的其他人,您可以尝试以下操作:
在您的控制台上:
设置 PDFLATEX=C:\Users\your_username\AppData\Local\Programs\MiKTeX\miktex in\x64\pdflatex
在\x64\makeindex中设置MAKEINDEX=C:\Users\your_username\AppData\Local\Programs\MiKTeX\miktex
环境变量的定义明确提供了对生成 PDF 文档所需的两个可执行文件的访问权限。
我遇到了类似的问题,因为我无法编写 pdf 文件并通过使用控制台中的这些命令(而不是终端)安装和运行tinitex 包来解决它
> install.packages("tinytex")
> tinytex::install_tinytex()