Xwatermark 仅在第一页打印水印

Xwatermark 仅在第一页打印水印

根据文档,以下内容应在每一页上产生水印,但它只出现在第一页:

\newwatermark*[allpages,angle=45]{watermark}

它似乎xwatermark将文档视为单页文档,oddpages产生了与相同的效果,allpages并且evenpages水印永远不会出现。我\newpage在我的文档中使用并禁用了页码。

如果我将文本标记移至背景,它也根本不会出现:

\newwatermark[allpages,angle=45]{watermark}

但是draftwatermark成功地在所有页面上打印了水印。但我需要一些功能才能xwatermark让它工作。


编辑:这是一个相当大的文件,此 tex 文件的基本配置如下。我认为它应该包括可能与问题相关的所有示例。

\documentclass[10pt]{article}

% encoding
\usepackage[T1]{fontenc}

% watermark
\usepackage{xwatermark}
\usepackage{textcomp} 

\usepackage{afterpage}


% line spacing
\usepackage{setspace}

% use color in latex
\usepackage{xcolor}

% character encoding
\usepackage[utf8]{inputenc}
\usepackage{CJKutf8}

% adjust the page margins
\usepackage[scale=0.75,a4paper,bindingoffset=0.2in,left=0.5in,right=1in,top=1in,bottom=1in,footskip=.25in]{geometry}

% define page header and footer
\usepackage{fancyhdr}
\pagestyle{fancy}

\fancyhf{}
\renewcommand{\headrulewidth}{\iffloatpage{0pt}{0pt}}
\renewcommand{\footrulewidth}{\iffloatpage{0pt}{0pt}}

% define page style
\fancypagestyle{summary}{
  \fancyhf{} % Clear all headers/footers
  \renewcommand{\headrulewidth}{4mm}
  \fancyhead[L]{% header left-aligned
    \fontsize{12}{14} \selectfont
    \textcolor{grey}{}\vspace{1em}
  }
  \renewcommand{\headrule}{\hbox to\headwidth{%
    \color{green}\leaders\hrule height \headrulewidth\hfill}}
  \renewcommand{\footrulewidth}{0pt}% No footer rule
}

% set watermark
\newwatermark*[allpages,angle=45]{watermark}

\begin{document}
\begin{CJK*}{UTF8}{gbsn}

page 1 ...
\newpage

page 2 ...
\newpage

\clearpage\end{CJK*}
\end{document}

编辑:@steve 在评论中编译了一个在两个页面上都有水印的文件,但我没有。第二页没有水印。我正在使用 Ubuntu。

几年前我在这里发现了一个历史问题:xwatermark allpages 在 Ubuntu 上无法使用但评论说这应该与操作系统无关。虽然事实证明确实如此。

答案1

xwatermark这似乎是由于获取包中最后一页的页码的方式不正确造成的。

内部宏\lastdocpage用于标记最后一页的页码。如果您打印该宏,您会发现它始终是1

因此,这里有一个解决方法,即使用附加包来查找最后一页。

\documentclass{article}

\usepackage[2020-02-02]{latexrelease} % <- for avoidance of incompatibility
% more at: https://tex.stackexchange.com/questions/566088

\usepackage{xcolor}
\usepackage[printwatermark]{xwatermark}
\newwatermark[allpages,textmark={All pages},angle=0,scale=2,ypos=0]{}
\newwatermark[oddpages,textmark={Odd pages},angle=0,scale=2,ypos=50]{}
\newwatermark[evenpages,textmark={Even pages},angle=0,scale=2,ypos=50]{}

% fix \lastdocpage
\usepackage{lastpage}
\usepackage{refcount}
\renewcommand{\lastdocpage}{\getpagerefnumber{LastPage}}

\begin{document}
\setcounter{page}{100}
\null\newpage
\null\newpage
\null\newpage
\null
\end{document}

相关内容