我希望除词汇表之外的所有链接都具有 hyperref 的默认行为:对于它们来说,它们应该仍然是链接,但没有边框
我开始尝试使用\hypersetup{linkbordercolor = white...
选项,但当我看到 \cref 也受到 link* 选项的影响时,我尝试了更具体的命令:
\renewcommand*{\glstextformat}[1]{\hypersetup{linkbordercolor = white}{#1}\hypersetup{linkbordercolor = black}}
或者
\renewcommand*{\glsentryfmt}{
\hypersetup{linkbordercolor = white}\glshyperlink[\glsgenentryfmt]{\glslabel}\hypersetup{linkbordercolor = black}%
}
但这些更新命令什么也没做
更新
我使用外部文件来记录词汇表条目,而实际上那些是首字母缩略词,而不是常规条目。因此,我的解决方案和给出的解决方案由于首字母缩略词和常规条目的混合而不起作用。我终于找到了一个解决方案,我希望它是正确的;所以如果你能审阅它,我将不胜感激。谢谢:
\usepackage[linkbordercolor={black}]{hyperref}
[...]
\defglsentryfmt{%
\ifglsacronym%
\hypersetup{linkbordercolor = white}\glshyperlink[\glsgenacfmt]{\glslabel} %
\else
\hypersetup{linkbordercolor = white}\glshyperlink[\glsgenentryfmt]{\glslabel}%
\fi
}
答案1
这对我来说是开箱即用的——使用后的分组\glsentryfmt
不需要重置链接边框颜色。\glslabel
\documentclass{article}
\usepackage{xcolor}
\usepackage[linkbordercolor={black}]{hyperref}
\usepackage{cleveref}
\usepackage{glossaries}
\newglossaryentry{foo}{%
name={Foo},
description={A foobar}
}
\renewcommand*{\glsentryfmt}{%
\hypersetup{linkbordercolor = white}\glshyperlink[\glsgenentryfmt]{\glslabel}%
}
\makeglossaries
\begin{document}
\section{Foo} \label{FOO}
In \Cref{FOO} we saw that \gls{foo}
\clearpage
\printglossaries
\end{document}
更新\thepagecolor
使用(针对极少数非白色页面颜色的情况)的版本
\documentclass{article}
\usepackage{xcolor}
\usepackage{pagecolor}
\usepackage[linkbordercolor={black}]{hyperref}
\usepackage{cleveref}
\usepackage{glossaries}
\newglossaryentry{foo}{%
name={Foo},
description={A foobar}
}
\makeatletter
\renewcommand*{\glsentryfmt}{%
\hypersetup{linkbordercolor = \thepagecolor}\glshyperlink[\glsgenentryfmt]{\glslabel}%
}
\makeatother
\makeglossaries
\begin{document}
\pagecolor{yellow}
\section{Foo} \label{FOO}
In \Cref{FOO} we saw that \gls{foo}
\clearpage
\printglossaries
\end{document}