在超级设置中始终将链接的边框设置为相同的高度

在超级设置中始终将链接的边框设置为相同的高度

我想使用 hypersetup 命令为文档中的链接添加下划线。但是,这会为在下划线上带有下划线(例如 ap、q、g、j、y)的链接添加下划线,而为在基线上没有下划线的链接添加下划线。

本质上,我在这里说明了这个问题:https://alexwlchan.net/2017/10/latex-underlines/

有什么方法可以使我适应作者的解决方案,以使用超设置边框添加下划线,或者仅定义与设置边框的基线的设定距离?

梅威瑟:

\documentclass[a4paper, 12pt]{article}
\usepackage{hyperref}
\usepackage{xcolor}

\hypersetup{%
    pdfborderstyle={/S/U/W 0.5}%
}

\begin{document}
\url{http://www.example.com} \\

\url{www.hhhhh.com}
\end{document}

答案1

您可以像这样注入 \strut :

\documentclass[a4paper, 12pt]{article}
\usepackage{hyperref}
\usepackage{xcolor}

\hypersetup{%
    pdfborderstyle={/S/U/W 0.5}%
}
\makeatletter
\usepackage{xpatch}
\AtBeginDocument{
\apptocmd\Hy@colorlink{\strut}{}{\fail}
}

\begin{document}
\url{http://www.example.com} \\

\url{www.hhhhh.com}
\end{document}

在此处输入图片描述

答案2

欢迎来到 TeX.SX!您可以重新定义原始命令以包含一个支柱,这是一个不可见的排版元素,其最小高度包括上升部和下降部高度。但是,\url省略 http:// 的命令不会链接到任何地方。如果您不想显示该部分,我建议您使用\href。我已修改了这两个命令以在下面包含一个支柱。请注意,您需要转义特殊字符,例如\#\%

\documentclass[a4paper, 12pt]{article}
\usepackage{hyperref}
\usepackage{xcolor}

\let\oldurl\url
\renewcommand{\url}[1]{\oldurl{#1}\strut}

\let\oldhref\href
\renewcommand{\href}[2]{\oldhref{#1}{#2}\strut}

\hypersetup{%
    pdfborderstyle={/S/U/W 0.5}%
}

\begin{document}
\oldurl{http://www.example.com} \\

\url{www.hhhhh.com}\\

\href{https://www.overleaf.com}{www.overleaf.com}    
\end{document}

在此处输入图片描述

相关内容