我使用hyperref
。glossaries
默认情况下,词汇表使用\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}