使用 tikzexternalize 在背面放置图像时出错

使用 tikzexternalize 在背面放置图像时出错

我正在按照本文详述的方式准备一篇论文问题

也就是说,我希望写一篇论文,其中文本出现在右侧(奇数页),图像出现在左侧(偶数页)。

上一个问题的答案适用于所有图像。但是,如果我使用tikzpicture环境以及外部化库,我会收到以下错误:

Package tikz Error: Sorry, the system call 'pdflatex -shell-escape 
-halt-on-error -interaction=batchmode -jobname "main-figure0" 
"\def\tikzexternalrealjob{main}\input{main}"' did NOT result in a 
usable output file 'main-figure0'

只要tikz代码未包含在提供的insertpic命令中,外部化就会起作用。但是,所有图像将始终显示在右侧页面上,这是不希望的。

根据我对的基本理解TeX,我相信错误的来源可能与insertpic命令在发送图像之前收集图像的方式有关,我认为这与外部化库有某种冲突。

我的问题是,有没有办法将insertpic命令和外部化库一起使用?

平均能量损失

\documentclass[oneside]{book}
% See: <https://tex.stackexchange.com/questions/96343/>
\makeatletter
\def\@oddhead{ODD PAGE\hfill\thepage}

\long\def\grabfirst#1#2\@@{\toks@{#2}\xdef\insertlist{\the\toks@}#1}
\let\old@outputpage\@outputpage
\def\@outputpage{%
\ifx\insertlist\@empty
\shipout\vbox to\@colht {\vss}%
\else
\begingroup
\setbox\@outputbox\vbox to\@colht {%
\expandafter\grabfirst\insertlist\@@
}%
\def\@oddhead{\thepage A  \hfill EVEN PAGE}
\old@outputpage
\addtocounter{page}{-1}%
\endgroup
\fi
\old@outputpage}

\gdef\insertlist{}
\long\def\insertpic#1{\g@addto@macro\insertlist{{#1}}}

\makeatother

\usepackage{tikz}
\usetikzlibrary{external}
\tikzexternalize
\begin{document}

Some text here.
A figure will be on the facing page.

\insertpic{
\begin{tikzpicture}
  \draw[red] (0,0) -- (1,1);
\end{tikzpicture}
}

\end{document}

相关内容