打印 PDF 的硬拷贝时,是否可以用与周围文本相同的颜色打印超链接?
当 PDF 打印在纸上时,我希望链接的颜色与周围的文本相同。这可能吗?
答案1
hyperref
有一个选项ocgcolorlinks
可以完全满足您的要求。
实验选项
ocgcolorlinks
这个想法是,链接在浏览时是彩色的,但打印出来时却是无色的。
此新的实验选项
ocgcolorlinks
使用了 PDF 1.5 中引入的功能可选内容组。
必须给出包加载的选项:
\usepackage[ocgcolorlinks]{hyperref}
主要缺点:链接不能跨行断开。
....
但请注意,使用此选项时“链接不能跨行断开”,因此,如果您需要此功能,最好使用colorlinks
选项并以“黑白”打印。
答案2
遗憾的是,该ocgcolorlinks
选项很脆弱——这才是我的理想,而不是拥有 2 个版本的文件。
也就是说,使用的解决方案\ifbool{hardcopybool}
可以简化为:
\usepackage[\ifbool{hardcopybool}{hidelinks=true}{colorlinks=true}]{hyperref}
带有该行的最小版本\usepackage
。如果您想为链接添加特定颜色,可以将它们添加回 的“else”部分\ifbool
。
为什么hidelinks=true
不用“colorlinks=false”?因为这样可以避免超链接周围出现难看的方框。
答案3
我使用编译时开关。也就是说,我在文件头中有这个。
\usepackage{etoolbox}
% Are printing a hard copy or not?
\newbool{hardcopybool}
% set the default by uncommenting one or the other
% \booltrue{hardcopybool}
\boolfalse{hardcopybool} % the default
% You can cause hyperlinks to be black by invoking with
% pdflatex "\def\hardcopy{}\input{book}"
% See http://stackoverflow.com/a/1466610
\ifdefined\hardcopy
\booltrue{hardcopybool}
\fi
\ifbool{hardcopybool}{\typeout{!!! PRINTING HARD COPY}}{}
后来我将其作为我导入的一部分超链接。
\usepackage[
colorlinks=true,
\ifbool{hardcopybool}{linkcolor=black,citecolor=black,filecolor=black,urlcolor=black}{linkcolor=darkcolor,citecolor=darkcolor,filecolor=darkcolor,urlcolor=darkcolor}, % usual colors for online version of book is links are blue. but for hard copy links are black
答案4
使用 colorlinks=false this =nocolor。colorlinks=true this=linkcolor here blue。例如
\usepackage[colorlinks=false,linkcolor=bleu]{hyperref}
无色和
\usepackage[colorlinks=true,linkcolor=bleu]{hyperref}
蓝色