
我希望除詞彙表中的連結之外的所有連結都具有 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}