rmarkdown: pandoc: pdflatex not found

RMacosPandocPdflatexR Markdown

R Problem Overview


When I use the render{rmarkdown} to produce pdf file from .Rmd file on my Mac, an error message says

pandoc: pdflatex not found. pdflatex is needed for pdf output. Error: pandoc document conversion failed

However when I check with

pdflatex -v

I got

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

The pdflatex is installed in my machine.

Can anyone help to tell how can I tell R where to find the pdflatex?

Many thanks!

R Solutions


Solution 1 - R

For people using ubuntu who get stranded here a better option (because it is 1/5 the size) is to use:

sudo apt-get install texlive-latex-base

Which I found via https://tex.stackexchange.com/a/128309

Solution 2 - R

This answer on TexExchange might help.

I found I was having issues with pdflatex "missing" after I upgraded to OS X Mavericks (e.g. when checking package builds in RStudio I was getting an error tools::texi2pdf pdflatex missing message).

  1. Check that /usr/texbin exists.
    In terminal:

     cd /usr/texbin
    
  2. If "No such file or directory" then you will need to create a symbolic link to your installation's texbin. Mine was in /Library/TeX/Distributions/.DefaultTeX/Contents/Programs/texbin
    In terminal:

     ln -s /Library/TeX/Distributions/.DefaultTeX/Contents/Programs/texbin /usr/texbin
    
  3. In terminal, check the result of echo $PATH. Make sure that /usr/texbin is present. If it isn't present, then you need to add /usr/texbin to your PATH variable.

If you find yourself having to mess with the PATH variable, installing the latest version of MacTex might be a better solution.

UPDATE: OS X 10.11 El Capitan no longer allows writes to /usr so the latest version of MacTeX (2015) now writes a link to /Library/TeX/texbin instead of /usr/texbin on this system.

Solution 3 - R

For those using Dunk's answer(For people using UBUNTU) who get a Font <font> at <size> not loadable: Metric (TFM) file not found. error, you also need:

sudo apt-get install texlive-fonts-recommended texlive-latex-recommended

This does unfortunately expand the size of the texlive install considerably, but it is still about half the size of a texlive-latex-extra install.

Solution 4 - R

For people that get stranded here because the same error is showing up in their Linux distribution. Get pdflatex in e.g. Ubuntu by installing

sudo apt-get install texlive-latex-extra

its too much software, but needed for example by knitr (rmarkdown-pdf-compilation)

Solution 5 - R

This might help a bit, in case you don't have any Latex stuff installed yet.

env: macOS Sierra

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

brew cask install basictex

  1. Now you need to figure out where pdflatex is hiding...
(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 is what we need, you can't refer to the pdftex symlink and/or use realpath because pandoc specifically wants to see pdflatex

  1. update your command line to point to the appropriate file.

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

Solution 6 - R

As of 2020 (MacOS Catalina) JL Peyret's answer is the most applicable. It should be slightly updated, since the --latex-engine option in pandoc has been deprecated in favor of the new --pdf-engine option:

$ brew install --cask basictex
$ pandoc myfile.md --to=pdf -t latex -o myfile.pdf --pdf-engine=/Library/TeX/texbin/pdflatex

Solution 7 - R

I had a similar issue as I wasn't able to knit pdf file & solved it by installing & running tinitex packages using those commands in the console -- not the terminal

enter code here

> install.packages("tinytex")

> tinytex::install_tinytex()

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionaskmingView Question on Stackoverflow
Solution 1 - RDunkView Answer on Stackoverflow
Solution 2 - REricView Answer on Stackoverflow
Solution 3 - RNighttimeDriver50000View Answer on Stackoverflow
Solution 4 - RdmeuView Answer on Stackoverflow
Solution 5 - RJL PeyretView Answer on Stackoverflow
Solution 6 - RrustomaxView Answer on Stackoverflow
Solution 7 - RYvesView Answer on Stackoverflow