我正在按照本文详述的方式准备一篇论文问题。
也就是说,我希望写一篇论文,其中文本出现在右侧(奇数页),图像出现在左侧(偶数页)。
上一个问题的答案适用于所有图像。但是,如果我使用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}