使用\AtBeginShipoutInit
会导致不透明度选项在第一页无法正常工作,否则代码就没有问题。
\documentclass{article}
\usepackage{lipsum}
\usepackage{tikz}
\usepackage{atbegshi}
\AtBeginShipoutInit
\AtBeginShipout{\AtBeginShipoutAddToBox{%
\begin{tikzpicture}[remember picture, overlay, ]
\node [color=black, scale=\textwidth/1cm, rotate=45, opacity=.2] at (current page.center) {draft};
\end{tikzpicture}
}}
\begin{document}
\lipsum[1-20]
\end{document}
ps:正如 Heiko Oberdiek 所说,pdflatex 和 lualatex 没有这样的效果。
答案1
这个问题可以通过 重现xelatex
。删除显式\AtBeginShipoutInit
帮助:
\documentclass{article}
\usepackage{lipsum}
\usepackage{tikz}
\usepackage{atbegshi}
\AtBeginShipout{\AtBeginShipoutAddToBox{%
\begin{tikzpicture}[remember picture, overlay, ]
\node [color=black, scale=\textwidth/1cm, rotate=45, opacity=.2]
at (current page.center) {draft};
\end{tikzpicture}%
}}
\begin{document}
\lipsum[1-20]
\end{document}
其他选项是使用pdflatex
或lualatex
。
宏\AtBeginShipoutInit
会在 处自动调用\begin{document}
,如果之前需要它,因为前导码包含一些需要它的未知代码,那么可以尝试一种折衷方案:
\documentclass{article}
\usepackage{lipsum}
\usepackage{tikz}
\usepackage{atbegshi}
\AtBeginDocument{\AtBeginShipoutInit}
\AtBeginShipout{\AtBeginShipoutAddToBox{%
\begin{tikzpicture}[remember picture, overlay, ]
\node [color=black, scale=\textwidth/1cm, rotate=45, opacity=.2]
at (current page.center) {draft};
\end{tikzpicture}%
}}
% <unknown code>
\begin{document}
\lipsum[1-20]
\end{document}