rmarkdown:pandoc:找不到 pdflatex

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

当我在 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 吗?

非常感谢!

r macos pandoc pdflatex r-markdown
8个回答
67
投票

对于使用 ubuntu 的人来说,如果被困在这里,更好的选择(因为它是 1/5 大小)是使用:

sudo apt-get install texlive-latex-base

我通过https://tex.stackexchange.com/a/128309

找到的

36
投票

TexExchange 上的这个答案可能会有所帮助

我发现在升级到 OS X Mavericks 后,我遇到了

pdflatex
“缺失”的问题(例如,在 RStudio 中检查包构建时,我收到了
error tools::texi2pdf pdflatex missing
消息)。

  1. 检查

    /usr/texbin
    是否存在。
    在终端:

    cd /usr/texbin
    
  2. 如果“没有这样的文件或目录”,那么您将需要创建一个指向安装的 texbin 的符号链接。我的在

    /Library/TeX/Distributions/.DefaultTeX/Contents/Programs/texbin

    在终端:

    ln -s /Library/TeX/Distributions/.DefaultTeX/Contents/Programs/texbin /usr/texbin
    
  3. 在终端中,检查

    echo $PATH
    的结果。确保
    /usr/texbin
    存在。如果它不存在,那么您需要将
    /usr/texbin
    添加到您的
    PATH
    变量中。

如果您发现自己不得不弄乱

PATH
变量,安装最新版本的 MacTex 可能是更好的解决方案。

更新: OS X 10.11 El Capitan 不再允许写入

/usr
,因此最新版本的 MacTeX (2015) 现在在此系统上写入指向
/Library/TeX/texbin
而不是
/usr/texbin
的链接。


25
投票

对于那些使用 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
安装大小的一半左右。


16
投票

如果您还没有安装任何 Latex 东西,这可能会有所帮助。

环境:macOS Sierra

  1. 来自 https://tex.stackexchange.com/questions/307483/setting-up-basictex-homebrew

brew cask install basictex

  1. 现在你需要找出 pdflatex 隐藏在哪里......
(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

  1. 更新命令行以指向适当的文件。

pandoc myfile.md --to=pdf -t latex -o myfile.pdf --latex-engine=/Library/TeX/texbin/pdflatex


15
投票

对于那些因为同样的错误出现在他们的 Linux 发行版中而陷入困境的人。获取 pdflatex 例如Ubuntu 通过安装

sudo apt-get install texlive-latex-extra

它的软件太多了,但是需要例如knitr(rmarkdown-pdf-compilation)


6
投票

截至 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

0
投票

对于正在寻找不涉及添加或安装更多软件包的可能解决方案的其他人,您可以尝试以下操作:

在您的控制台上:

设置 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 文档所需的两个可执行文件的访问权限。


0
投票

我遇到了类似的问题,因为我无法编写 pdf 文件并通过使用控制台中的这些命令(而不是终端)安装和运行tinitex 包来解决它

> install.packages("tinytex")

> tinytex::install_tinytex()
© www.soinside.com 2019 - 2024. All rights reserved.