选定页面上的水印或 xwatermark 和 scrlayer-scrpage

选定页面上的水印或 xwatermark 和 scrlayer-scrpage

也许这是一个重复的问题,但我想在文档开头定义的页面上添加水印。到目前为止,唯一提供此功能的软件包是 xwatermark。但我使用 scrlayer-scrpage,它们不能一起工作。有没有解决方法或任何其他提供此功能的软件包?

\documentclass{scrartcl}
\usepackage{xcolor}
\usepackage{blindtext}
\usepackage[printwatermark]{xwatermark}
%\usepackage{scrlayer-scrpage}  % uncomment and compilation fails
\newwatermark[pagex={1,2,4,6},angle=45,scale=3]{Only selected Pages}
\begin{document}
\Blinddocument
\end{document}

答案1

xwatermark加载包fancyhdr,但不能与包 一起使用scrlayer-scrpage

使用包,scrlayer-scrpage您可以为水印定义一个附加层,并将其添加到包括页面样式在内的每个层页面样式中empty

例子:

\documentclass{scrartcl}
\usepackage{xcolor}
\usepackage{graphicx}
\usepackage[automark]{scrlayer-scrpage}

\usepackage{expl3}
\ExplSyntaxOn
\clist_const:Nn \l_my_watermarkpages {1,2,4,8}% list with the selected page numbers
\newcommand\watermark[1]
  {\makebox[0pt][c]
    {\scalebox{3.1}% scaling
      {\rotatebox[origin=bc]{45}% rotating
        {\Huge\bfseries\textcolor{lightgray}% font settings
          {\clist_if_in:NVTF \l_my_watermarkpages {#1}
            {\watermarktext}{}
  }}}}}
\ExplSyntaxOff
\newcommand\watermarktext{Only selected Pages}

\DeclareNewLayer[
  background,
  %textarea,
  mode=picture,
  contents={\putC{\watermark{\the\value{page}}}}
]{watermark}
\AddLayersToPageStyle{@everystyle@}{watermark}

\usepackage{blindtext}% only for dummy text
\begin{document}
\Blinddocument
\end{document}

结果:

在此处输入图片描述


如果您不xwatermark从代码中删除包,那么您必须使用包fancyhdr作为页眉和页脚。

例子:

\documentclass{scrartcl}
\usepackage{xcolor}
\usepackage{blindtext}
\usepackage[printwatermark]{xwatermark}
\newwatermark[pagex={1,2,4,6},angle=45,scale=3]{Only selected Pages}

\pagestyle{fancy}
\usepackage{blindtext}% only for dummy text
\begin{document}
\Blinddocument
\end{document}

结果:

在此处输入图片描述

请注意,这会破坏几个 KOMA-Script 功能:选项headseplinefootsepline\addtokomafont以及setkomafont元素pageheadfootpagenumber等。

相关内容