複雑な tikz 図を含む pdf ドキュメントを knitr を使用してコンパイルすると、pdftex エンジンがメモリ不足になることがあります。そのため、これらの Rnw ファイルをコンパイルするために luatex エンジンを使用しました。ただし、この方法では、プロットにウムラウト (äüö) を含めることはできません。例を参照してください。
\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}
luatex チャンクで eval=TRUE を変更すると、「getMetricsFromLatex(TeXMetrics) でエラーが発生しました」というエラーが発生します。
この問題を解決するにはどうすればいいでしょうか? ありがとうございます!
答え1
Ulrike Fischer のコメントのおかげで、私は自分で問題を解決することができました。RStudio をエディターとして使用したところ、Rnw ファイルは依然として pdftex を使用してコンパイルされていることがわかりました。したがって、luatex-chunk には、pdftex-document (inputenc と fontspec) とは異なるパッケージを使用する必要がありました。
RStudio で luatex をコンパイラとして設定できなかったため、XeLaTex を使用してパッケージを調整しました。これで、luatex チャンクを問題なくコンパイルできます。pdftex チャンクがコンパイルされなくなったという事実 (上記のパッケージの問題のため) は、私にとっては問題ではありません。
% !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}