这是我在 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
。因此,每个驱动程序的 的公共内部都被修补了。)hyperref
hpdftex.def
hluatex.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}