我在 RStudio 中使用 knitr 和 XeLaTeX。我使用块缓存,这样每次编译文档时都不必重新运行某些代码。fontspec
这个最小的例子表明,如果加载了包,缓存似乎被破坏了。
\documentclass{article}
\usepackage{fontspec} % Appears to somehow conflict with caching.
\begin{document}
<<pre_load, cache=TRUE>>=
library(tikzDevice)
options(tikzDefaultEngine="xetex")
@
\section{Test}
<<test_block, dev='tikz', dependson='pre_load'>>=
plot(1:10,main='Test')
@
\end{document}
第一次将此文档编译为 PDF 时,它会起作用,因为没有使用缓存。但是,如果对块进行了更改test_block
,并且第二次运行代码,它将失败。例如,编译成 PDF 一次后,将test_block
块更改为:
<<test_block, dev='tikz', dependson='pre_load'>>=
plot(1:10,main='Test Modified')
@
现在,编译为 PDF 失败并出现以下错误:
!
********************************************
* XeTeX is required to compile this document.
* Sorry!
********************************************.
\RequireXeTeX ...********************************}
\endgroup \fi
l.18 \RequireXeTeX
此错误表示options(tikzDefaultEngine="xetex")
尚未设置。有趣的是,如果fontspec
未加载包,则不会发生此错误。
我的问题是:这是一个错误,还是我的代码有问题?
我正在通过RStudio(0.97.246)(通过浏览器通过RStudio Server访问)在R(R正在开发(不稳定)(2012-11-10 r61101))上使用tikzDevice(0.6.3)使用knitr(1.1),它本身就是在 Ubuntu (12.04.2 LTS) 上运行。我的 LaTeX2e 的日期为 <2009/09/24>。