我正在嘗試建立一個包含以下內容的文件:
- 封面頁圖像(參見1在這篇文章下面)使用套件設定為背景
eso-pic
。 - 我使用 外部化的幾張 tikz 圖片
\tikzexternalize[up to date check={md5}]
。
問題:封面圖像的一部分包含在 tikz 圖片的背景中。
如何在保持外部化的同時解決這個問題?
下列的湯姆的回答:在我的完整文件中,我\AddToShipoutPictureBG
在巨集內部使用,因此我必須\tikzset{external/optimize command away=\mymacro}
在巨集定義之後設置,而不是在\tikzexternalize
命令中設定。
% !TeX TXS-program:compile = txs:///lualatex/[--shell-escape]
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{external}
\tikzexternalize[up to date check={md5}]
\usepackage{eso-pic}
\usepackage{graphicx}
\begin{document}
% Add title image across the complete page
\AddToShipoutPictureBG*{\AtPageLowerLeft{%
\includegraphics[width=\paperwidth,height=\paperheight]{my_picture.jpg}}}
\newpage\null\newpage
\tikzsetnextfilename{tikz_picture}
\begin{tikzpicture}
\draw[red, thick] (-1,2) -- (2,-4);
\draw[red, thick] (-1,-1) -- (2,2);
\filldraw[red] (0,0) circle (2pt) node[anchor=west]{A tikz picture};
\end{tikzpicture}
\end{document}
答案1
optimize command away=\AddToShipoutPictureBG
您可以在啟用時使用該選項\tikzexternalize
。請注意eso-pic
,必須在命令之前載入套件\tikzexternalize
。
% !TeX TXS-program:compile = txs:///lualatex/[--shell-escape]
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{external}
\usepackage{eso-pic} %%load the 'eso-pic' package before '\tikzexternalize', otherwise the command '\AddToShipoutPictureBG' will not be defined.
\tikzexternalize[
up to date check={md5},
optimize command away=\AddToShipoutPictureBG
]
\usepackage{graphicx}
\begin{document}
% Add title image across the complete page
\AddToShipoutPictureBG*{\AtPageLowerLeft{%
\includegraphics[width=\paperwidth,height=\paperheight]{example-image-a}}}
\newpage\null\newpage
\tikzsetnextfilename{tikz_picture}
\begin{tikzpicture}
\draw[red, thick] (-1,2) -- (2,-4);
\draw[red, thick] (-1,-1) -- (2,2);
\filldraw[red] (0,0) circle (2pt) node[anchor=west]{A tikz picture};
\end{tikzpicture}
\end{document}