我在外部化方面的实验遇到了麻烦。一个问题是,我似乎无法将tikz
用作页面背景的图片外部化:
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{external,positioning}
\tikzexternalize
\begin{document}
\begin{tikzpicture}[remember picture, overlay]
\draw [blue] (current page.north west) -- (current page.south east);
\end{tikzpicture}
\end{document}
我认为,这会失败,因为位置直到第二次运行才正确,但是通过外部化,tikz
永远不会重新编译代码,因此错误的定位永远不会得到纠正。
我知道有办法解决这个问题,例如,通过独立编译图片,然后将其设置为背景壁纸。我想知道是否可以使用外部化来实现这一点,这样我就不必考虑单独的文件了。(这个项目已经包含许多文件,很难跟踪它们。)
或者,是否可以重复使用照片tikz
之内一次编译运行?我注意到,如果我多次使用\input
一张tikz
图片,它似乎会被编译多次。如果有办法避免这种情况,那肯定会有所帮助,尽管它只对我使用的图片中的一定比例有效。
答案1
这是无需外部化即可工作的东西。诀窍是在之后设置框\begin{document}
。
\documentclass{article}
\usepackage{everypage}
\usepackage{tikz}
\newsavebox\mytikzpic
\AddEverypageHook{\usebox{\mytikzpic}}
\usepackage{tikz}
\usetikzlibrary{external,positioning}
%\tikzexternalize
\usepackage{lipsum}
\begin{document}
\savebox\mytikzpic{%
\begin{tikzpicture}[remember picture, overlay]
\draw [blue] (current page.north west) -- (current page.south east);
\end{tikzpicture}%
}
\lipsum[1-13]
\end{document}