几个月后回到文档时,通过软件包配置的背景background
消失了。我检查了一下,删除文件后背景已经恢复aux
,但是仅限首次运行经过几次测试后,背景图像有时会恢复,但仅限于文档的最后几页,而其他图像似乎(我现在无法重现)在将vshift
和hshift
设置为零时每次运行时都一致运行。它只是在第一次运行时消失吗?第一次运行时的位置是否不同,导致背景超出页面范围?
如何才能从第一次运行开始就保证位置一致?
\documentclass{book}
\usepackage[pages=all]{background}%
\backgroundsetup{
scale=1,
color=black,
opacity=0.65,
angle=0,
vshift=0cm,
hshift=0cm,
contents={%
BACKGROUND CONTENT
}%
}
\begin{document}
Lipsum.
\end{document}
Overleaf 没有显示此问题,我发现 Miktex、Texmaker 运行 PDFLaTeX 时存在此问题。
答案1
在overlay
模式(否remember picture
)下,tikz 将把原点放在当前位置(\put
)。
\documentclass{book}
\usepackage{tikz}
\usepackage{lipsum}
\AddToHook{shipout/background}{\put(0.5\paperwidth,-0.5\paperheight)% center of paper
{\tikz[overlay]{\node[opacity=0.65] at (0,0) {BACKGROUND CONTENT};}}}
\begin{document}
\lipsum[1]
\end{document}
此版本将与 XeLaTeX 兼容。
\documentclass{book}
\usepackage{tikz}
\usepackage{lipsum}
\newsavebox{\background}
\savebox{\background}{\begin{minipage}[t][\paperheight][s]{\paperwidth}
\hrule height0pt\vfill
\centering
\tikz{\node[opacity=0.5]{BACKGROUND CONTENT};}
\vfill\hrule height0pt
\end{minipage}}% Note, \hrule is used to put baselines at the top and bottom of the page.
\AddToHook{shipout/background}{\put(0pt, 0pt){\usebox\background}}
\begin{document}
\lipsum[1-4]
\end{document}