使用 xelatex 时 TikZ 阴影未在第一页上绘制

使用 xelatex 时 TikZ 阴影未在第一页上绘制

看这个例子:

%! TEX program = xelatex
\documentclass{article}
\usepackage{tikz}

\AddToHook{shipout/background}{%
    \begin{tikzpicture}[remember picture,overlay]
        \shade[left color=green,right color=red] (current page.south west) rectangle (current page.north east);
    \end{tikzpicture}%
}

\usepackage{blindtext}
\begin{document}
\blindtext[10]
\end{document}

使用 运行它xelatex,第一页上不会绘制矩形。但是使用pdflatex,一切正常。

在此处输入图片描述

有没有什么办法可以解决这个问题?

答案1

它对我有用。但我使用的是 Windows,并且我有一个较新的 xdvipdfmx(在 texlive 和 miktex 中,我的版本是“Version 20210109”)。

如果我使用 texlive 2019 中的旧版 xdvipdfmx,我会收到与阴影相关的各种错误,并且阴影丢失:

xdvipdfmx:warning: Error locating image file "pgfshade1"
xdvipdfmx:warning: Specified (image) object doesn't exist: pgfshade1
xdvipdfmx:warning: Interpreting special command uxobj (pdf:) failed.
xdvipdfmx:warning: >> at page="1" position="(-50, 742)" (in PDF)
xdvipdfmx:warning: >> xxx "pdf:uxobj @pgfshade1"

我看不出有什么好办法可以解决这个问题。在我看来,你唯一能做的(如果你不能得到更新的二进制文件)就是直接将阴影添加到第一页,而不是添加到 shipout 钩子中:

\begin{document}
\begin{tikzpicture}[remember picture,overlay]
\shade[left color=green,right color=red] (current page.south west) rectangle (current page.north east);
\end{tikzpicture}
 ...

相关内容