Я использую Knitr с XeLaTeX в RStudio. Я использую кэширование фрагментов, чтобы мне не приходилось перезапускать определенный код каждый раз, когда я компилирую свой документ. Этот минимальный пример показывает, что кэширование нарушается, если загружается пакет 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
не загружен, то этой ошибки не возникает.
Мой вопрос: это ошибка или что-то не так с моим кодом?
Я использую Knitr (1.1), используя tikzDevice (0.6.3) на R (R в стадии разработки (нестабильный) (2012-11-10 r61101)) через RStudio (0.97.246) (доступ через браузер через RStudio Server), который сам по себе работает на Ubuntu (12.04.2 LTS). Мой LaTeX2e датирован ‹2009/09/24>.