
用語集からのリンクを除くすべてのリンクに、ハイパーリファレンスのデフォルトの動作を適用したいと思います。用語集からのリンクは、境界線のないリンクのままである必要があります。
私はオプションを試し始めました\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}