任何類型的術語表條目都沒有超連結邊框,但仍然是超引用的

任何類型的術語表條目都沒有超連結邊框,但仍然是超引用的

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

相關內容