如何在整个文档中设置 href 样式(带下划线和颜色)

如何在整个文档中设置 href 样式(带下划线和颜色)

让我们来看看以下 MWE:

\documentclass{article}

\usepackage{hyperref,xcolor}

\begin{document}

\href{http://any-URL}{\color{blue}{\underline{Some URL}}}

\end{document}

假设我想要每一个第二个论点每一个 \href\color{blue}{\underline{在...样式的文档中}

通过定义,这怎么可能实现呢?

答案1

\href必须执行相当多的\catcode-magic 来处理 URL 中的所有特殊字符(如 #),因此所有带参数的命令\catcodes都很难插入。您可以尝试以下方法。但

  • 恕我直言,下划线看起来不太好。
  • 它只适用于\href(我希望......)
  • 普通文本会换行,但 URL 可能不会。
  • \ulfrom soul 不能代替 \uline。

代码

\documentclass{article}
\usepackage[colorlinks,allcolors=blue]{hyperref}
\usepackage[normalem]{ulem}
\usepackage{xcolor}


\makeatletter
\begingroup
  \catcode`\$=6 %
  \catcode`\#=12 %
  \gdef\href@split$1#$2#$3\\$4{%
    \hyper@@link{$1}{$2}{\uline{$4}}% or \underline
    \endgroup
  }%
\endgroup

\begin{document}

\href{http://any-URL}{Some URL}

\href{http://any-URL-with#hash}{Some URL}

\href{http://any-URL-with#hash}{\nolinkurl{http://any-URL-with\#}}

\end{document}

在此处输入图片描述

答案2

Ulrike 解决方案的一个更简单的变体,基于我对如何在带下划线 href 的 URL 中使用数字符号 (#)

\documentclass{article}
\usepackage{xcolor,soul}
\usepackage{etoolbox}
\usepackage{hyperref}

\hypersetup{colorlinks,urlcolor=blue}

\makeatletter
\patchcmd{\hyper@link@}
  {{\Hy@tempb}{#4}}
  {{\Hy@tempb}{\ul{#4}}}
  {}{}
\makeatother

\begin{document}

\href{https://tex.stackexchange.com/#/!!!}{URL with a number sign}

A hyperlink \href{https://tex.stackexchange.com/#/!!!}{URL with a number sign
and text long enough to trigger a line break} with something following.

\end{document}

在此处输入图片描述

答案3

改编沃纳的乱码例如,另一种(内部到hyperref)可能性是这样的:

\documentclass{article}

\usepackage{hyperref}
\hypersetup{
  allbordercolors=0 0 1,
  pdfborderstyle={/S/U/W 1}
}

\begin{document}

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut
\href{http://any-URL}{pellentesque augue} est, id ornare nisi
fringilla eu. Nulla euismod sollicitudin lacus, et porta lectus
accumsan ut. Vestibulum quis interdum lorem. Sed sodales fermentum
neque eu auctor. Vestibulum vitae eros nec massa ultricies
\href{http://any-URL}{sodales vel vitae} justo. Integer a mauris
lectus. Aliquam eu diam vehicula velit lacinia congue. Sed ac mollis
arcu, eu viverra dui. Nunc at elit mi. Duis elementum pulvinar
placerat. Phasellus vel massa varius quam mattis fermentum sed mollis
arcu. \href{http://any-URL}{Vestibulum ante ipsum primis in} faucibus
orci luctus et ultrices posuere cubilia Curae; Aenean dolor elit,
consequat nec tellus luctus, vestibulum fermentum orci. Nullam nec leo
eros. Nullam at quam a mauris luctus euismod ac eu dolor.

\end{document}

答案4

这是要在文档开头添加的代码,以供在 darkgreen 中参考。

\usepackage{xcolor}
\usepackage{hyperref}
\definecolor{darkgreen}{rgb}{0.06, 0.78, 0.3}
\hypersetup{            % reference colors
colorlinks=true,
linkcolor=darkgreen,
pdfborder = {0 0 0},
filecolor=magenta,
urlcolor=cyan,
}
\hypersetup{linkcolor=black}

相关内容