也许这是一个重复的问题,但我想在文档开头定义的页面上添加水印。到目前为止,唯一提供此功能的软件包是 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 功能:选项headsepline
和footsepline
,\addtokomafont
以及setkomafont
元素pageheadfoot
和pagenumber
等。