Search code examples
rfontssweave

R Sweave Computer Modern font usage


I've installed the R packages extrafont and fontcm. Then tried to plot the data with Computer Modern font in Sweave:

<<test,fig=TRUE,echo=False>>=
plot(na, family="CM Roman")
@

But it fails with error:

> grDevices::pdf.options(useDingbats = FALSE); utils::Sweave('test.Rnw', encoding='UTF-8')
Writing to file test.tex
Processing code chunks with options ...
 1 : echo keep.source term verbatim (test.Rnw:76)
 2 : keep.source term verbatim pdf  (label = test, test.Rnw:80)

Error:  chunk 2 (label = test) 
Error in axis(side = side, at = at, labels = labels, ...) : 
  invalid font type
In addition: Warning messages:
1: In axis(side = side, at = at, labels = labels, ...) :
  font family 'CM Roman' not found in PostScript font database
2: In axis(side = side, at = at, labels = labels, ...) :
  font family 'CM Roman' not found in PostScript font database
3: In axis(side = side, at = at, labels = labels, ...) :
  font family 'CM Roman' not found in PostScript font database
4: In axis(side = side, at = at, labels = labels, ...) :
  font family 'CM Roman' not found in PostScript font database
5: In axis(side = side, at = at, labels = labels, ...) :
  font family 'CM Roman' not found in PostScript font database
6: In axis(side = side, at = at, labels = labels, ...) :
  font family 'CM Roman' not found in PostScript font database
7: In axis(side = side, at = at, labels = labels, ...) :
  font family 'CM Roman' not found in PostScript font database
Error in rle(filenames) : 'x' must be an atomic vector
Calls: <Anonymous> -> <Anonymous> -> RweaveTryStop
Execution halted

loadfonts(device="postscript") shows that fonts is already registered with postscriptFonts()

How can I use it with Sweave?


Solution

  • Appears to be a stupid and easy question. I need to load extrafont and fontcm packages in my Sweave file:

    <<setup,echo=FALSE>>=
        library(extrafont)
        library(fontcm)
    @