词汇表参考产生两个超链接

词汇表参考产生两个超链接

我正在尝试实现这个效果现有问题\gls应该产生超链接,但没有分散注意力的框架,而所有其他链接都照常运行。

回答这个问题的答案是将边框颜色改为白色。但是,这往往会掩盖参考文献周围的标点符号。因此,我尝试将其设置pdfborder为零,但似乎没有效果。

经过反复尝试,我最终得到了这个 MWE:

\documentclass{article}
\usepackage{xcolor}
\usepackage{hyperref}
\usepackage{glossaries}

\newacronym{foo}{foo}{foobar}
\makenoidxglossaries

\defglsentryfmt[\glsdefaulttype]{\hypersetup{linkbordercolor=green,pdfborder=0 0 0.1}\glshyperlink[\glsgenentryfmt]{\glslabel}}

\begin{document}
    \section{\label{x}Foo}

    In Section~\ref{x} we saw that \gls{foo}.

    \printnoidxglossaries
\end{document}

上述输入的结果

请注意,实际上有两个边框,一个受我的设置影响,一个不受影响。您还可以看到句号几乎完全被遮挡,因此白色边框是不可取的。第二个超链接来自哪里?我如何影响它的外观?

答案1

用 指定的格式\defglsentryfmt表示在诸如 之类的命令的超链接中使用的文本\gls。由于\defglsentryfmt已被重新定义为使用\glshyperlink,这会插入超链接,这会导致嵌套超链接。

实际上,最好只是重新定义用于生成超链接的命令。在内部,这是\@glslink\glsenablehyper将其分配给 的值\glsdohyperlink,因此您只需重新定义\glsdohyperlink然后使用\glsenablehyper。像这样:

\documentclass{article}
\usepackage{xcolor}
\usepackage{hyperref}
\usepackage{glossaries}

\newacronym{foo}{foo}{foobar}
\makenoidxglossaries

\renewcommand*{\glsdohyperlink}[2]{%
 {\hypersetup{linkbordercolor=green}\hyperlink{#1}{#2}}}

\glsenablehyper

\begin{document}
    \section{\label{x}Foo}

    In Section~\ref{x} we saw that \gls{foo}.

    \printnoidxglossaries
\end{document}

这产生了

文件图像

相关内容