tikz:透明对象(覆盖层)失去透明度。为什么?

tikz:透明对象(覆盖层)失去透明度。为什么?

我想用 tikz 在页面中间的一些文本上方绘制一个(透明)圆盘,以便文本仍然可读。以下 MWE 正确显示了红色圆盘如果第一个\blindtext命令不存在/注释掉了。但是,如果它存在(所以如果在 tikz 图片之前有一些文本),那么磁盘就会失去透明度。我想知道如何防止这种情况发生(如果这很重要:这是在 macOS 12.1,TeXLive 2020 上)。

\documentclass{scrartcl}

\usepackage{tikz}
\usepackage{blindtext}

\begin{document}
%% Commenting the following line *out* correctly shows the disk in full transparency.
%% However, with the following line the disk is only transparent with respect to
%% the text thereafter.
\blindtext[3] % comment in/out to see the difference
\begin{tikzpicture}[remember picture, overlay, shift={(current page.center)}]
  \pgfdeclarelayer{ink}
  \pgfsetlayers{main,ink}
  \begin{pgfonlayer}{ink}
    \draw[fill, color = red!95] (0,0) circle (2cm);
  \end{pgfonlayer}
\end{tikzpicture}
\blindtext[4]
\end{document}

答案1

感谢 Ulrike Fischer(很高兴在这里看到她的帮助,工作非常出色),我找到了以下解决方案。请注意,它需要更新到 TeXLive 2021。

\documentclass{scrartcl}

\usepackage{tikz}
\usepackage{blindtext}

\begin{document}
\blindtext[3]
\AddToHook{shipout/background}{\put(0,0){
\begin{tikzpicture}[remember picture, overlay, shift={(current page.center)}]
  \pgfdeclarelayer{ink}
  \pgfsetlayers{main,ink}
  \begin{pgfonlayer}{ink}
    \draw[fill, color=red] (0,0) circle (2cm);
  \end{pgfonlayer}
\end{tikzpicture}
}}
\blindtext[4]
\end{document}

上述解决方案在所有页面上打印图片。这里如果图片只能出现在单个页面上,或者应该出现在多个页面上(但不是所有页面上),则进行后续操作。

相关内容