rmarkdown: pandoc: pdflatex не найден

Когда я использую рендеринг {rmarkdown} для создания PDF-файла из .Rmd-файла на моем Mac, появляется сообщение об ошибке

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?

Большое спасибо!


person askming    schedule 27.02.2014    source источник
comment
Вы перезапускали R после установки pdflatex?   -  person daroczig    schedule 28.02.2014
comment
Да. Все еще не сработало.   -  person askming    schedule 28.02.2014


Ответы (7)


​​Этот ответ на TexExchange может помочь.

Я обнаружил, что у меня возникли проблемы с pdflatex "отсутствующим" после того, как я обновился до OS X Mavericks (например, при проверке сборок пакетов в 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 в этой системе.

person Eric    schedule 18.03.2014
comment
Раздел 8 this очень удобен - вам не нужно устанавливать более новую версию mactex - person James Owers; 12.02.2016
comment
Возможно, будет полезно упомянуть, что после создания символической ссылки требуется перезапуск R-Studio. - person Anders Larsen; 14.05.2016

Для людей, использующих ubuntu, которые здесь застряли, лучшим вариантом (потому что он составляет 1/5 размера) является использование:

sudo apt-get install texlive-latex-base

Что я нашел через https://tex.stackexchange.com/a/128309

person Dunk    schedule 06.08.2015

Для тех, кто использует ответ Данка (для людей, использующих 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.

person NighttimeDriver50000    schedule 06.03.2016
comment
Вам, вероятно, следует предложить отредактировать этот ответ, а не писать свой комментарий как новый ответ. - person Martin Tournoij; 07.03.2016
comment
@Carpetsmoker Я не удивлюсь, если такое изменение действительно будет отклонено. Тем не менее, он расширяет решение одной из возникших проблем. - person Zizouz212; 07.03.2016
comment
Вы можете значительно уменьшить размер, добавив параметр --no-install-recommends в apt-get install. Например, чтобы рендеринг PDF работал с rmarkdown, я установил их, что заняло ~ 300 МБ: apt-get -y --no-install-recommends install texlive-latex-base texlive-fonts-recommended texlive-latex-extra lmodern - person Leo; 15.06.2016

Для людей, которые оказались здесь в затруднительном положении из-за того, что та же ошибка обнаруживается в их дистрибутиве Linux. Получите pdflatex, например, Ubuntu, установив

sudo apt-get install texlive-latex-extra

его слишком много программного обеспечения, но необходимо, например, Knitr (rmarkdown-pdf-compilation)

person dmeu    schedule 26.05.2015

Это может немного помочь, если у вас еще не установлен латекс.

env: 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

person JL Peyret    schedule 13.03.2018

По состоянию на 2020 год (MacOS Catalina) ответ JL Peyret является наиболее применимым. Его следует немного обновить, поскольку опция --latex-engine в pandoc устарела в пользу новой опции --pdf-engine:

$ brew cask install basictex
$ pandoc myfile.md --to=pdf -t latex -o myfile.pdf --pdf-engine=/Library/TeX/texbin/pdflatex
person rustomax    schedule 01.07.2020
comment
Пришлось brew install --cask basictex, потому что Calling brew cask install is disabled! Use brew install [--cask] instead. - person Kenzo; 22.01.2021

У меня была аналогичная проблема, так как я не смог связать файл pdf и решил ее, установив и запустив пакеты tinitex, используя эти команды в консоли, а не в терминале

enter code here

install.packages ("tinytex")

tinytex :: install_tinytex ()

person Yves    schedule 11.02.2020