为选定内容添加水印
我想在包含两个标记之间或某个环境(或类似环境)内内容的任何页面上添加水印,理想情况下包括可能浮动到后续页面上的任何图形。类似于以下内容:
% Starting confidential marker
\section{Something confidential}
\lipsum % several pages, including floating figures or similar
% Ending confidential marker
目前我已经在使用该draftwatermark
包为文档的其余部分加水印,并且想保留这一点,并在其上覆盖一些相同的内容(可能在不同的对角线上),但用大写红色字母表示机密。
我查看了主要的水印软件包(xwatermark
、draftwatermark
等),但似乎找不到能够做到这一点的软件包。我怀疑可以通过记录页码并使用类似于(改编自这个答案)
\newwatermark[pages=\firstpagemarker-\secondpagemarker,color=red!25,scale=3,xpos=0,ypos=0]{Confidential}
问题在于,它要求我提前知道页面范围,我认为可以使用以下方法进行破解类似这样的解决方案使用目录标记。
理想特征
我希望无论提出何种水印解决方案,都不会发布\clearpage
或类似内容。水印效果不应扰乱文档的格式。
处理图形有点棘手。首先,只有包含指定机密区域内内容的页面才有水印。如果页面不包含任何内容,则没有水印(机密区域内的空白页可以标记)。这意味着,如果机密图形在最后一个机密内容之后浮动几页,则中间页面不会有水印。
类似的情况是,如果非机密数据溢出到机密页面范围,并占用整个页面而机密内容未显示任何内容,那么我更希望这样的页面不被标记为机密。我不希望这种情况经常发生,也不认为这需要像以前的要求那样严格满足。(误报是可以接受的,漏报则不行)。
最后,在机密范围内创建的任何引用内容(如索引、目录、命名法或类似内容中的项目)都不应受到影响。
可以安全地假设不存在嵌套的机密材料。
当前尝试
\documentclass[english,a4paper,11pt,twoside,openright]{book}
\usepackage[]{draftwatermark}
\SetWatermarkScale{1}
\SetWatermarkLightness{0.8}
\usepackage{lipsum}
\usepackage{fancyhdr}
\usepackage{xwatermark}
\usepackage{xcolor}
\begin{document}
\section{Non-confidential stuff}
\lipsum
% Starting confidential marker
%% There won't be a clear page here <-- %%
\newwatermark[pages=\firstpagemarker-\secondpagemarker,color=red!25,angle=-45,scale=2.5,xpos=0,ypos=0]{CONFIDENTIAL}
\newcommand{\firstpagemarker}{\thepage}
\section{Something confidential}
\lipsum
\begin{figure}[htb] % making a big figure which I know will be pushed back a few pages.
\noindent\fbox{\begin{minipage}[t][0.8\textheight][c]{\dimexpr\textwidth-2\fboxsep-2\fboxrule\relax}
\centering Some floating figure which is also confidential
\end{minipage}} \caption{I want this page marked confidential too.}
\end{figure}
% Ending confidential marker
\newcommand{\secondpagemarker}{\thepage}
\section{Normal stuff again}
\lipsum
\end{document}
在此示例中,只有第 2、3、4 和 6 页应该具有机密水印。
答案1
使用背景和机密环境
\documentclass[english,a4paper,11pt,twoside,openright]{book}
\usepackage{lipsum}
\usepackage{fancyhdr}
\usepackage[contents={}]{background}
\usepackage{xcolor}
\newenvironment{envconfidential}{
\newpage\backgroundsetup{contents={confidential}}
}
{\newpage\backgroundsetup{contents={}}}
\begin{document}
\section{Non-confidential stuff}
\lipsum[1-5]
\begin{envconfidential}
\section{Something confidential}
\lipsum[1-10]
\end{envconfidential}
\section{Normal stuff again}
\lipsum[1-5]
\end{document}
我添加了新页面,以便您可以使用背景图像“捕捉”每个机密部分。