\newwatermark
包中的命令xwatermark
有一个选项pagex
,允许仅在选定页面上插入水印。但是,它要求我输入硬编码的页码。
\newwatermark[pagex{42,56},angle=45,xpos=0,ypos=0,textmark=WRONG]{}
我想使用标签和 pageref 来避免硬编码。
\newwatermark[pagex{\pageref{l1},\pageref{l2}},angle=45,xpos=0,ypos=0, textmark=WRONG]{}
在哪里l1和l2是文档中定义的标签。
不幸的是,这会出现以下错误:
**Missing number, treated as zero.**
答案1
\pageref{...}
是一个不可扩展的宏,即TeX
无法将其减少到实际页码,这就是为什么命令pagex={\pageref{foo}}
必须失败,它需要文字数字。
该包refcount
提供了\getpagerefnumber
返回文字数字的宏(即可扩展)
\documentclass{article}
\usepackage{refcount}
\usepackage{blindtext}
\usepackage{xcolor}
\usepackage{xwatermark}
\begin{document}
\newwatermark[pagex={\getpagerefnumber{foo},\getpagerefnumber{foobar}},angle=45,xpos=0,ypos=0]{Hello World!}
\blindtext[5]
\section{Foo} \label{foo}
\blindtext[10]
\section{Foobar} \label{foobar}
\blindtext[10]
\end{document}