防止 hyperref 强调某些内容

防止 hyperref 强调某些内容

有什么方法可以防止 hyperref 加下划线:

1)与以下词汇表条目相关的\gls

2)脚注标记\footnote

\footref3)包装中设置的脚注标记footmisc

MWE 用于测试(您需要编译两次)。

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

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

\newglossaryentry{foo}{name=foo, description=bar}

\begin{document}

This document uses the most advanced \gls{foo} technology.

There is also a footnote\footnote{\label{fn}This is the footnote}. 
It can be referenced multiple times.\footref{fn}

\end{document}

答案1

正如 Ulrike Fischer 提到的:您必须修改\gls以及所有其他需要修改链接的命令以本地重置超链接样式。

为此,您可以使用包在要修改的命令开头xpatch添加一个命令,并在这些命令结尾添加另一个命令。\hypersetup\hypersetup

但是,这并不总是有效,例如\gls不是一个处理其参数的完整命令,而是调用内部glossaries命令\@gls来处理参数。简化:\gls重写为\initialstuff\@gls,这意味着\gls{abc}被执行为\initialstuff\@gls{abc}。因此,如果你将它附加\hypersetup\gls它,就会变成\initialstuff\@gls\hypersetup{},这意味着\gls{abc}将被执行为\initialstuff\@gls\hypersetup{}{abc},这是行不通的。这里显而易见的解决方案是 patch \@gls。同样,要将某些内容附加到 ,\footnote您需要 patch \@footnotetext

梅威瑟:

\documentclass[a4paper, 12pt]{article}
\usepackage{hyperref}
\usepackage{glossaries}
\usepackage{footmisc}
\usepackage[nameinlink]{cleveref} % for demonstration purposes
\usepackage{xpatch}

\makeatletter
\xpretocmd{\gls}{\hypersetup{hidelinks}}{}{}
\xapptocmd{\@gls}{\hypersetup{pdfborderstyle={/S/U/W 0.5}}}{}{}
\xpretocmd{\footnote}{\hypersetup{hidelinks}}{}{}
\xapptocmd{\@footnotetext}{\hypersetup{pdfborderstyle={/S/U/W 0.5}}}{}{}
\xpretocmd{\footref}{\hypersetup{hidelinks}}{}{}
\xapptocmd{\footref}{\hypersetup{pdfborderstyle={/S/U/W 0.5}}}{}{}
\makeatother

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

\newglossaryentry{foo}{name=foo, description=bar}

\begin{document}

\section{First section}
\label{sec:first}

This document (See \Cref{sec:first}) uses the most advanced \gls{foo} technology. See again \Cref{sec:first}.

There is also a footnote\footnote{\label{fn}This is the footnote}. 
It can be referenced multiple times.\footref{fn} See \Cref{sec:first} for the third time.

\end{document}

结果:

在此处输入图片描述

相关内容