看这个例子:
%! 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}
...