我可以让超链接使用不同的颜色以便打印吗?

我可以让超链接使用不同的颜色以便打印吗?

打印 PDF 的硬拷贝时,是否可以用与周围文本相同的颜色打印超链接?

当 PDF 打印在纸上时,我希望链接的颜色与周围的文本相同。这可能吗?

答案1

hyperref有一个选项ocgcolorlinks可以完全满足您的要求。

hyperref的自述

实验选项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}

蓝色

相关内容