我在RStudio中使用帶有XeLaTeX的knitr。我使用塊緩存,這樣我不必在每次編譯文檔時都重新運行某些代碼。這個最小的例子表明,如果fontspec
軟件包被加載,緩存似乎被破壞。通過RStudio使用XeLaTeX fontspec包時,knitr緩存失敗
\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
軟件包未加載,則不會發生此錯誤。
我的問題是:這是一個錯誤,還是有我的代碼有問題?我正在使用tikzDevice(0.6.3)在R(R開發中(不穩定)(2012-11-10 r61101))通過RStudio(0.97.246)使用knitr(1.1)(通過RStudio Server通過瀏覽器訪問) )本身運行在Ubuntu(12.04.2 LTS)上。我的LaTeX2e的日期是< 2009/09/24>。