有没有办法使某些图形元素不可打印,即打印为白色,但仍在屏幕上完全可见?
以下是可供玩耍和娱乐的 MWE:
\documentclass[11pt,letterpaper,twoside]{book}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[total={6in,10in},left=1.5in,top=0.5in,includehead,includefoot]{geometry}
\usepackage{microtype}
\usepackage{amsmath}
\usepackage{mathtools}
\usepackage{eso-pic}
\usepackage{xcolor}
\usepackage{showframe}
\newlength{\distance}
\setlength{\distance}{0.0in}
\newlength{\rulethickness}
\setlength{\rulethickness}{0.5in}
\newlength{\ruleheight}
\setlength{\ruleheight}{\paperheight}
\newlength{\xoffset}
\newlength{\yoffset}
\setlength{\yoffset}{0pt}
\AddToShipoutPicture{%
\setlength\fboxsep{0pt}%
\ifodd\value{page}%
\setlength{\xoffset}{\distance}%
\else
\setlength{\xoffset}{\dimexpr\paperwidth-\rulethickness-\distance}%
\fi
\AtPageLowerLeft{%
\put(\LenToUnit{\xoffset},\LenToUnit{\yoffset}){%
\colorbox{lightgray}{\parbox[b][\ruleheight][c]{\rulethickness}{%
\centering
\ifodd\value{page}%
\rotatebox[origin=cB]{90}{\color{red}{\large{\normalfont\textsc{Copyright notice}}}}%
\else
\rotatebox[origin=cB]{90}{\color{blue}{\huge{\normalfont\textsc{Some Title}}}}%
\fi
}}}}%
}
\begin{document}
Test
\newpage
Another page
\end{document}
此代码在内边距绘制一条灰色垂直条,并带有一些版权声明。我需要它在屏幕上阅读 PDF 文档时保持可见。但我还希望它在打印到纸上时完全不可见。使用某些 LaTeX 命令可以实现这一点吗?
编辑:哎呀!这个问题似乎与这个问题重复:在 PDF 中创建不会打印到纸张上的元素
答案1
PDF 图层可以配置为不打印在纸上。此解决方案用于问题中链接的答案。虽然这种基于 OCG 的方法可以用于任何排版内容,但只有一小部分 PDF 查看器支持它,即 Acrobat Reader 和 Chromium PDF 插件。
对于可以放在框中的页面元素(如本问题),可以采用另一种基于不可打印 PDF 注释的方法。此方法适用于所有已知的 PDF 查看器。使用此方法,可选页面元素将显示为不可打印、非交互式 PDF 注释的外观:
\documentclass[11pt,letterpaper,twoside]{book}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[total={6in,10in},left=1.5in,top=0.5in,includehead,includefoot]{geometry}
\usepackage{microtype}
\usepackage{amsmath}
\usepackage{mathtools}
\usepackage{eso-pic}
\usepackage{xcolor}
\usepackage{showframe}
\usepackage{graphicx}
\usepackage{pdfbase}
\ExplSyntaxOn
\let\tpPdfAnnot\pbs_pdfannot:nnnn\let\tpPdfLastAnn\pbs_pdflastann:
\let\tpAppendToFields\pbs_appendtofields:n
\def\tpPdfXform{\pbs_pdfxform:nnnnn{1}{1}{}{}}
\let\tpPdfLastXform\pbs_pdflastxform:
\ExplSyntaxOff
% odd
\begin{lrbox}{0}
\setlength\fboxsep{0pt}%
\rotatebox{90}{%
\colorbox{lightgray}{%
\makebox[\paperheight][c]{%
\raisebox{-0.5\totalheight+\depth}[0.25in][0.25in]{\large\scshape\color{red}Copyright notice}%
}%
}%
}
\end{lrbox}
\tpPdfXform{0}\edef\oddElem{\tpPdfLastXform}
%even
\begin{lrbox}{0}
\setlength\fboxsep{0pt}%
\rotatebox{90}{%
\colorbox{lightgray}{%
\makebox[\paperheight][c]{%
\raisebox{-0.5\totalheight+\depth}[0.25in][0.25in]{\huge\scshape\color{blue}Some Title}%
}%
}%
}
\end{lrbox}
\tpPdfXform{0}\edef\evenElem{\tpPdfLastXform}
\newlength\xoffset
\AddToShipoutPicture{%
\ifodd\value{page}%
\setlength{\xoffset}{0pt}%
\else
\setlength{\xoffset}{\paperwidth-0.5in}%
\fi
\AtPageLowerLeft{%
\put(\LenToUnit{\xoffset},0){%
\tpPdfAnnot{0.5in}{\paperheight}{0pt}{%
/Subtype/Widget/FT/Btn/T (elem.\value{page})%
/AP<<
\ifodd\value{page}%
/N \oddElem % normal appearance
\else
/N \evenElem
\fi
>>%
/Ff 65537 % non-interactive push button
/F 0 % visible, but no-print
}%
\tpAppendToFields{\tpPdfLastAnn}
}%
}%
}
\begin{document}
Test
\newpage
Another page
\end{document}