2016-07-28 21 views
0

Ich wollte eine benutzerdefinierte Schriftart innerhalb meiner .Rnw Beamer Präsentation verwenden. Ein minimaler Arbeitsbeispiel, das den Fehler reproduziert ist:Benutzerdefinierte ggplot Schriftart mit Sweave und Beamer

\documentclass{beamer} 
\begin{document} 
\begin{frame}[plain] 
<<echo=FALSE>>= 
library(ggplot2) 
library(extrafont) 
@ 
\begin{figure} 
\centering 
<<label = test, fig=TRUE, include=FALSE, echo=FALSE, message=FALSE>>= 
ggplot(mtcars, aes(x=wt, y=mpg)) + geom_point() + 
    ggtitle("Fuel Efficiency of 32 Cars") + 
    xlab("Weight (x1000 lb)") + ylab("Miles per Gallon") + 
    theme_bw() + 
    theme(text=element_text(family="Garamond", size=14)) 
@ 
\includegraphics[width=\textwidth]{test} 
\end{figure} 
\end{frame} 
\end{document} 

und die Fehlermeldung sieht wie folgt aus:

Writing to file test.tex 
Processing code chunks with options ... 
1 : keep.source term verbatim (test.Rnw:6) 
Registering fonts with R 
2 : keep.source term verbatim pdf (label = test, test.Rnw:12) 
Error in grid.Call.graphics(L_text, as.graphicsAnnot(x$label), x$x, x$y, : 
    invalid font type 
Calls: <Anonymous> ... drawDetails -> drawDetails.text -> grid.Call.graphics 
In addition: There were 50 or more warnings (use warnings() to see the first 50) 
Execution halted 

Aber wenn ich die ggplot Befehl in der Konsole verwenden, alles sieht gut aus.

Jede Hilfe würde sehr geschätzt werden.

+0

Der einzige Weg, kann ich Ihre Fehler reproduzieren, eine .Rnw Datei verwenden, ist, wenn ich versuche, eine Schriftart zu verwenden, die nicht installiert ist. In der Konsole kehrt R zu einer Standardschrift zurück und gibt Warnungen aus, wenn ich versuche, eine nicht installierte Schriftart zu verwenden. –

+0

Das ist seltsam. Wenn ich 'fonts()' betrachte, sehe ich deutlich, dass die Schriftart installiert ist und, wie ich vermute, "extrafont" zugänglich ist. – Pascal

Antwort

0

In Ordnung, ich war das Problem in der Tat, dass die Schriftart nicht installiert war. Aber da ich Garamond nur als Beispiel benutzt habe und wirklich die otf-Schrift Fira Sans verwenden wollte, habe ich das showtext-Paket verwendet.

Hier ist der Code, der funktioniert:

\documentclass{beamer} 
\begin{document} 
\begin{frame}[plain] 
<<test, fig=TRUE, echo=FALSE, width=6, height=4>>= 
library(ggplot2) 
library(showtext) 
font.add.google("Fira Sans", "fira") 
showtext.auto() 
ggplot(mtcars, aes(x = wt, y = mpg)) + geom_point() + 
    ggtitle("Fuel Efficiency of 32 Cars") + 
    xlab("Weight (x1000 lb)") + ylab("Miles per Gallon") + 
    theme_bw() + 
    theme(text = element_text(family = "fira")) 
@ 
\end{frame} 
\end{document}