文本和边框颜色均供参考

文本和边框颜色均供参考

这是我在 StackExchange 上的第一个问题,我希望它看起来合理并且之前没有被问过(我尝试过查找)。

我是一名初学者,想用 LaTeX 写论文。我喜欢将参考文献作为彩色文本的想法,但希望内部参考文献有边框。但是当我尝试使用以下代码时hyperref

\hypersetup{pdfpagemode={UseOutlines},
bookmarksopen=true,
bookmarksopenlevel=0,
hypertexnames=false,
colorlinks=true,
citecolor=blue,
linkcolor=green,
linkbordercolor={1 0 0},
urlcolor=red,
pdfstartview={FitV},
unicode,
breaklinks=true,
}

我认为colorlinks=true这阻止了边框颜色的进入。我可以这样做吗?

答案1

默认情况下,hyperref

  • 三种全局和独有的链接样式:(pdfborder默认)、colorlinks、 和pdfborderstyle、和
  • 六种链接类型:cite(书目引用)、file、link(内部引用)、menu、run、url。

这是一个粗略的实现,允许用户为每种链接类型设置前两种链接样式之一。

更新:

  • 修补较低的宏\Hy@VerboseLinkStart而不是\hyper@link@

    (在biblatex和等地方\contentsline\hyper@linkstart\hyper@link直接使用。这两个宏在xetex 引擎的驱动程序 中有依赖关系,但在 和 中没有hxetex.def。因此,每个驱动程序的 的公共内部都被修补了。)hyperrefhpdftex.defhluatex.def\Hy@VerboseLinkStart\hyper@link[|start]

在下面的例子中,我使用

\hypersetup{
  citetype=colorlinks, 
  linktype=pdfborder
}

color为所有引用和border所有链接设置链接样式。

\documentclass{article}
\usepackage{xcolor}
\usepackage{hyperref}
\usepackage{xpatch}

\makeatletter
% change link style (color or border) per link type
\xpretocmd\Hy@VerboseLinkStart
  {\csname hyper@set@link@type@#1\endcsname}
  {}{\fail}

% set link type to color
\def\hyper@use@colorlinks{%
  \let\@pdfborder\@pdfborder@plain
  \let\Hy@colorlink\Hy@colorlink@normal
}

% set link type to border
\def\hyper@use@pdfborder{%
  \let\@pdfborder\@pdfborder@normal
  \ifHy@frenchlinks
    \let\Hy@colorlink\Hy@colorlink@french
  \else
    \let\Hy@colorlink\Hy@colorlink@plain
  \fi
}

\let\@pdfborder@normal\@pdfborder
\def\@pdfborder@plain{0 0 0}

\def\Hy@colorlink@plain#1{\begingroup}
\def\Hy@colorlink@french#1{\begingroup\fontshape{\scdefault}\selectfont}
\def\Hy@colorlink@normal#1{\begingroup\HyColor@UseColor#1}


% new \hypersetup options per link type
% usage: "citetype=[colorlinks|pdfborder]"
\def\Hy@ColorList{cite,file,link,menu,run,url}
\@for\Hy@temp:=\Hy@ColorList\do{%
  \edef\Hy@temp{%
    \noexpand\define@key{Hyp}{\Hy@temp type}{%
      \noexpand\expandafter\noexpand\let
      \noexpand\expandafter\expandafter\noexpand\csname hyper@set@link@type@\Hy@temp\endcsname
      \noexpand\csname hyper@use@##1\noexpand\endcsname%
    }%
  }%
  \Hy@temp
}
\makeatother

% user setting
\hypersetup{
  % colorlinks, % option "colorlinks" now has no effects
  citetype=colorlinks, 
  linktype=pdfborder
}

\begin{document}
Section~\ref{key}, article \cite{citekey}
\section{title}\label{key}

\begin{thebibliography}{00}
  \bibitem{citekey}
\end{thebibliography}
\end{document}

在此处输入图片描述

相关内容