背景图像(eso-pic)和 tikz 外部化

背景图像(eso-pic)和 tikz 外部化

我正在尝试创建一个包含以下内容的文档:

  • 封面图片(见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你可以在 enable 时使用该选项。注意必须在命令之前加载\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}

在此处输入图片描述

相关内容