更改词汇表中的超链接样式

更改词汇表中的超链接样式

我使用hyperrefglossaries默认情况下,词汇表使用\hyperlink{<target>}{<text>}来生成超链接。这会导致使用默认链接颜色(通常为红色,或由linkcolor或定义的任何颜色linkbordercolor)。我希望词汇表链接的颜色不同于标准链接颜色,例如,蓝色而不是红色。

我读过扩展手册glossaries无法弄清楚。

我最接近的答案是这样的:

\renewcommand*{\glstextformat}[1]{\hypersetup{linkbordercolor={0 0 1}}#1\hypersetup{linkbordercolor={1 0 0}}}

glstextformat会更改超链接内的文本,这样我就错过了创建超链接的时刻,所以更改颜色已经太晚了。因此,我的命令是这样的,在创建超链接后,我迅速将所有后续链接的颜色更改为蓝色,然后立即将其改回,当然,这没有任何区别。

我也尝试过glossaries-extra

\usepackage{glossaries-extra}
\glssetcategoryattribute{acronym}{hyperoutside}{false}
\newcommand{\myformat}[2]{234 #1 #2 123 123}
\glssetcategoryattribute{acronym}{textformat}{myformat}

希望命令的第二个参数textformat是超链接中使用的链接,但没有第二个参数。

谢谢!

编辑:这是一个最小的工作示例:

\documentclass{book}
\usepackage{hyperref}
\usepackage{glossaries-extra}

\makeglossaries

% GLOSSARY
\newglossaryentry{entry}{
    name=glossary entry,
    description={Test description}}

% ACRONYMS
\newacronym{test}{TEST}{This Entry Stands for Test} 

\begin{document}

\hypertarget{tag}{Something something}

Want this \gls{entry} to be blue.

This is a simple hyperlink, which should be the default red \hyperlink{tag}{some link}.

Want this next glossary link to be blue again: \gls{test}.

Thanks.

\end{document}

答案1

虽然它很丑,但是却很管用。

\documentclass{book}
\usepackage{xcolor}
\usepackage{hyperref}
\usepackage{glossaries-extra}

\let\oldgls=\gls
\renewcommand{\gls}[1]{{\hypersetup{linkbordercolor=blue}%
  \oldgls{#1}}}%

\makeglossaries

% GLOSSARY
\newglossaryentry{entry}{
    name=glossary entry,
    description={Test description}}

% ACRONYMS
\newacronym{test}{TEST}{This Entry Stands for Test} 

\begin{document}

\hypertarget{tag}{Something something}

Want this \gls{entry} to be blue.

This is a simple hyperlink, which should be the default red \hyperlink{tag}{some link}.


Want this next glossary link to be blue again: \gls{test}.

Thanks.

\end{document}

相关内容