使用标签指示 xwatermark 页面中哪些页面应该有水印

使用标签指示 xwatermark 页面中哪些页面应该有水印

\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]{}

在哪里l1l2是文档中定义的标签。

不幸的是,这会出现以下错误:

**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}

在此处输入图片描述

相关内容