Beim Kompilieren von PDF-Dokumenten mit komplexen Tikz-Figuren mit knitr ging der pdftex-Engine manchmal der Arbeitsspeicher aus. Daher habe ich die luatex-Engine zum Kompilieren dieser Rnw-Dateien verwendet. Auf diese Weise kann ich jedoch keine Umlaute (äüö) in meine Plots einbinden. Siehe das Beispiel:
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\begin{document}
<<pdftexGood, dev="tikz", message=FALSE, echo=FALSE, cache=FALSE>>=
options(tikzDefaultEngine = "pdftex")
plot(rnorm(100), xlab="Der satanarchäolügenialkohöllische Wunschpunsch")
@
<<luatexBad, dev="tikz", message=FALSE, echo=FALSE, cache=FALSE, eval=FALSE>>=
options(tikzDefaultEngine = "luatex")
plot(rnorm(100), xlab="Der satanarchäolügenialkohöllische Wunschpunsch")
@
\end{document}
Beim Ändern von eval=TRUE im Luatex-Block erhalte ich die Meldung „Fehler in getMetricsFromLatex(TeXMetrics)“.
Was kann ich tun, um das Problem zu lösen? Danke!
Antwort1
Dank Ulrike Fischers Kommentar konnte ich das Problem selbst lösen. Mit RStudio als Editor stellte sich heraus, dass die Rnw-Datei immer noch mit pdftex kompiliert wurde. Für den Luatex-Block musste also ein anderes Paket verwendet werden als für das pdftex-Dokument (inputenc vs. fontspec).
Da ich luatex in RStudio nicht als Compiler einstellen konnte, habe ich XeLaTex verwendet und die Pakete angepasst. Jetzt kann ich den luatex-Block problemlos kompilieren. Dass der pdftex-Block nicht mehr kompiliert (aufgrund der oben genannten Paketprobleme), ist für mich kein Problem.
% !TeX program = XeLaTeX
\documentclass{article}
\usepackage[T1]{fontenc}
%\usepackage[utf8]{inputenc}
\usepackage{fontspec}
\begin{document}
<<pdftexBad, dev="tikz", message=FALSE, echo=FALSE, cache=FALSE>>=
#options(tikzDefaultEngine = "pdftex")
#plot(rnorm(100), xlab="Der satanarchäolügenialkohöllische Wunschpunsch")
@
<<luatexGood, dev="tikz", message=FALSE, echo=FALSE, cache=FALSE, eval=TRUE>>=
options(tikzDefaultEngine = "luatex")
plot(rnorm(100), xlab="Der satanarchäolügenialkohöllische Wunschpunsch")
@
\end{document}