我想要由hyperref
有颜色和下划线。
阅读一些软件包文档后,我知道这些\hypersetup
键存在:
colorlinks
:当 时true
,为链接着色;当 时false
,在链接周围绘制边框并着色。linkcolor
:链接的颜色(需要colorlinks=true
有效果)linkbordercolor
:链接边框颜色(需要colorlinks=false
有效果)pdfborderstyle
:pdf borderstyle 字典的键。我不知道这个字典有哪些键和值,但我知道pdfborderstyle={/S/U}
或者pdfborderstyle={/S/U/W 1}
可以将链接边框从方框更改为下划线。
但是,这种关键结构似乎不可能有彩色链接(需要colorlinks=true
)和彩色边框(需要colorlinks=false
)。
这是一个最小(非)工作示例(通过):
\documentclass{article}
\usepackage{xcolor}
\usepackage{hyperref}
\hypersetup{colorlinks=false,%
linkbordercolor=red,linkcolor=green,pdfborderstyle={/S/U/W 1}}
\begin{document}
\section{To See}\label{tosee}
\vskip2cm
\hyperref[tosee]{just to see}
\end{document}
默认状态下colorlinks=false
,文本为黑色,边框为红色。
文字为colorlinks=true
绿色且没有边框。
答案1
我认为这是故意为之,因为超链接的引入可能会使用户对实际文本的视图变得混乱。此外,并非所有超链接排版都是可打印的 - 正如您所提到的,PDF 超链接仅仅是“页面上可识别鼠标的矩形区域”。但是,如果您想这样做,有两个选项可用
手动的
你停用该colorlinks
选项可以hyperref
设置链接边框:
\hypersetup{%
colorlinks=false,% hyperlinks will be black
linkbordercolor=red,% hyperlink borders will be red
pdfborderstyle={/S/U/W 1}% border style will be underline of width 1pt
}
并使用 手动排版文本\color{<color>}
。例如:
...
\begin{document}
\section{To See}\label{tosee}
\hyperref[tosee]{\color{green}just to see}
\end{document}
请注意,这实际上与内部的操作相同hyperref
,因为即使通过打印为 PDF(或展平)删除超链接,文本颜色也会被修改并且会以这种方式排版。
这种方法的优点(激励将其包括在这里)是,如果您愿意,可以为每个超链接指定不同的颜色。
自动的
你启用该colorlinks
选项用于hyperref
设置文本中的链接颜色
\hypersetup{%
colorlinks=true,% hyperlinks will be coloured
linkcolor=green,% hyperlink text will be green
linkbordercolor=red,% hyperlink border will be red
}
然后在上面的内容后添加以下内容\hypersetup{...}
:
\makeatletter
\Hy@AtBeginDocument{%
\def\@pdfborder{0 0 1}% Overrides border definition set with colorlinks=true
\def\@pdfborderstyle{/S/U/W 1}% Overrides border style set with colorlinks=true
% Hyperlink border style will be underline of width 1pt
}
\makeatother
这里是pdfborderstyle
规格从Adobe:
答案2
我知道你可能正在寻找一个使用hyperref
自己的下划线的解决方案,但我添加了这个答案,以防有人真的想使用彩色和下划线的链接(我建议不要这样做)。hyperref
的下划线并不是特别漂亮,事实上,它只是一个框的底线。soul
的下划线更漂亮,可定制性更强(见其文档)。
\documentclass{article}
\usepackage{xcolor,soul,lipsum}
\usepackage[hidelinks]{hyperref}
\newcommand{\myhy}[2]{\hyperref[#1]{\color{green}\setulcolor{red}\ul{#2}}}
\begin{document}
\section{To See}\label{tosee}
\vskip2cm
This is \myhy{tosee}{just to see} what it looks like. \lipsum[1]
\end{document}
以下是hyperref
下划线,作为比较:
答案3
如果你只需要几次,则不需要新命令或任何额外的包。只需在链接标签上添加下划线和颜色:
\usepackage{hyperref}
\usepackage{xcolor}
\href{https://www.example.com}{[{\underline{\textcolor{blue}{link}}}]}
答案4
到目前为止,所有解决方案都对我的情况不起作用。我尝试解决的问题是什么?显示全部外部链接(URL)black
用 1px 线(简历)着色并加下划线。只有一个要求,不需要自定义样式href
。
原始答案(https://tex.stackexchange.com/a/26085/125035) 几乎满足了我的所有需求,除了一个小问题。它不适用于指向外部网络资源的实际 URL,例如 Twitter 帐户上的链接。
小心并仔细检查确切地您想要的颜色和下划线。官方hyperref 文档对我帮助很大。例如,查看“5.6 扩展选项”部分,并详细了解 和其他 *color 参数之间的linkcolor
区别urlcolor
。
我还发现解决方案在另一个问题中。您可以使用答案中的代码,它工作得很好。在我看来,这\AtBeginDocument{\hypersetup{pdfborderstyle={/S/S/W 1}}}
在我的简单情况下是一种解决方法。我的解决方案是:
\usepackage{hyperref}
\hypersetup{
urlbordercolor = black,
pdfborderstyle={/S/U/W 1},
}
因此,外部 URL 以正确的方式显示。\href{mailto:[email protected]}{[email protected]}