我发现下面的水印解决方案:
\documentclass{article}
\usepackage[margin=2.5cm, showframe]{geometry}
\usepackage{tikzpagenodes}
\usepackage{eso-pic}
\usepackage{lipsum}%<- only to add some text
\AddToShipoutPicture{\begin{tikzpicture}[overlay,remember picture]
\ifodd\value{page}
\node[anchor=south,rotate=90,pink,font=\sffamily\Huge]
(AE) at ([xshift=-1em]current page text area.west){Albert Einstein};
\draw[very thick,pink] (AE.east) -- ++ (0,4)
(AE.west) -- ++ (0,-4);
\else
\node[anchor=south,rotate=-90,pink,font=\sffamily\Huge]
(CFG) at ([xshift=1em]current page text area.east){Carl Friedrich Gauss};
\draw[very thick,pink] (CFG.west) -- ++ (0,4)
(CFG.east) -- ++ (0,-4);
\fi
\end{tikzpicture}}
\begin{document}
\lipsum[1-3]
\newgeometry{left=1.5cm, right=1.5cm, bottom=1cm}
\lipsum[2-5]
\newpage
\lipsum[1]
\end{document}
除了一个小细节外,这看起来几乎完美。定位是相对于给定的侧面几何形状进行的。由于我有一些页面具有不同的设置,因此水印看起来很奇怪 - 尤其是在这些特殊页面上只插入一个图形时。重叠并不重要。
有没有办法以固定的方式定位\node
?例如,距离页面左侧(或右侧)和中间 1.5 厘米(也可以手动计算)。
更新
我已更新示例,使其包含不止 2 页。我希望第 1 页和第 3 页上的水印位置完全相同 - 不管设置如何geometry
。
答案1
将水印相对于(current page)
而不是放置(current page text area)
。
\documentclass{article}
\usepackage[margin=2.5cm, showframe]{geometry}
\usepackage{tikz}
\usepackage{eso-pic}
\usepackage{lipsum}%<- only to add some text
\AddToShipoutPicture{\begin{tikzpicture}[overlay,remember picture]
\ifodd\value{page}
\node[anchor=south,rotate=90,pink,font=\sffamily\Huge]
(AE) at ([xshift=3em]current page.west){Albert Einstein};
\draw[very thick,pink] (AE.east) -- ++ (0,4)
(AE.west) -- ++ (0,-4);
\else
\node[anchor=south,rotate=-90,pink,font=\sffamily\Huge]
(CFG) at ([xshift=-3em]current page.east){Carl Friedrich Gauss};
\draw[very thick,pink] (CFG.west) -- ++ (0,4)
(CFG.east) -- ++ (0,-4);
\fi
\end{tikzpicture}}
\begin{document}
\lipsum[1-3]
\newgeometry{left=1.5cm, right=1.5cm, bottom=1cm}
\lipsum[2-5]
\newpage
\lipsum[1]
\end{document}