Rmarkdown, Rstudio: pandoc.exe: Error producing PD

2019-02-18 16:06发布

问题:

I am trying to render a pdf document with the knit pdf button in RStudio, but I keep on getting this error:

! pdfTeX error (font expansion): auto expansion is only possible with scalable 
fonts.
\AtBegShi@Output ...ipout \box \AtBeginShipoutBox 
                                                  \fi \fi 
l.167 

pandoc.exe: Error producing PDF from TeX source
Error: pandoc document conversion failed with error 43

I know there is a lot be found on the internet regarding error 43, but non of them helped me. Does anyone know what it means exactly and where I can find the solution? It's peculiar because a few hours ago I had the same error but the rendering went well after adding this in my code:

Sys.setenv(PATH = paste(Sys.getenv("PATH"), "C:\\Program Files\\MiKTeX 2.9\\miktex\\bin\\x64\\", sep=.Platform$path.sep))

But now the error is back

EDIT

when trying a minimal example:

---
title: "test"
output: pdf_document
---

```{r results="asis"}
library(stargazer)
c1 <- c("test1","test1","test2","test2")
c2 <- c(1,2,3,4)
data_object <- as.data.frame(cbind(c1,c2))
names(data_object) <- c("test","test2")
stargazer(data_object,summary=FALSE,rownames=FALSE,type="html")
```

The error it gives is:

!pdfTeX error: pdflatex (file ec-lmr10): Font ec-lmr10 at 600 not found
 ==> Fatal error occurred, no output PDF file produced!
Trying to make PK font ec-lmr10 at 600 DPI...
Running miktex-makemf.exe...
miktex-makemf: The ec-lmr source file could not be found.
miktex-makepk: The application file ttf2pk.exe could not be found.

pandoc.exe: Error producing PDF from TeX source
Error: pandoc document conversion failed with error 43

This is a different error, but still a 43 one. I checked it, but the font ec-lmr10 file is on the system. Somehow it can't be found.

回答1:

The problem you have is a font related one. When you knit a PDF, knitr uses LaTeX and you have to know that "fonts" of LaTeX are not like the standard ones.

To solve your problem try to add the latin model font family by loading the package (at the very top):

\usepackage{lmodern}

For more detailed informations about how and where insert this piece of code in your document, have a look here.

This package allows you to have scalable fonts; not all fonts of all (font) packages are to so. I think, but I might be wrong, because first versions of TeX and LaTeX were designed to work with METAFONT.

Edit

Your code works well for me, it does not produce any error. My idea is that happens because I have a complete Tex live distribution on my Mac (MacTeX). At this point I suppose that the problem relies on some packages that the r packages you use (like stargazer) use and you (we) do not know and won't (unless we analyze the code of course).

At this point my suggestion is to download a complete TeX distribution so you will be sure that any error related to PDF output is no related to the underlying tool that Studio uses to produce such PDFs (say, LaTeX).

You can find a complete LaTeX distribution for Mac and for Windows.