我正在使用词汇表在我的论文中有很多包。有些条目在整个文档中出现的频率很高。我想禁用这些条目的超链接,但保留所有其他条目的超链接。
我曾尝试将其放在\glsdisablehyper
频繁条目之前,但没有成功。
答案1
对于这些“频繁出现”的条目,请使用带星号的版本glossaries
“用户命令”(例如\gls*
),以抑制超链接。
\documentclass{article}
\usepackage{hyperref}
\usepackage{glossaries}
\makeglossaries
\newglossaryentry{electrolyte}{name=electrolyte,
description={solution able to conduct electric current}}
\newglossaryentry{pi}{name={\ensuremath{\pi}},
description={ratio of circumference of circle to its diameter},sort=pi}
\begin{document}
Some text about \gls{electrolyte} and \gls*{pi}.
\printglossaries
\end{document}
答案2
如果您升级到最新版本glossaries
(撰写本文时为 v4.09),则可以加入hyper
使用条目时设置键默认值的机制。这是一个简单示例,它仅禁用特定条目的超链接(ut
):
\documentclass{article}
\usepackage[colorlinks]{hyperref}
\usepackage{glossaries}
\makeglossaries
% dummy entries copied from example-glossaries-brief.tex
\newglossaryentry{lorem}{name={lorem},description={ipsum}}
\newglossaryentry{dolor}{name={dolor},description={sit}}
\newglossaryentry{amet}{name={amet},description={consectetuer}}
\newglossaryentry{adipiscing}{name={adipiscing},description={elit}}
\newglossaryentry{ut}{name={ut},description={purus}}
\newglossaryentry{elit}{name={elit},description={vestibulum}}
\renewcommand*{\glslinkcheckfirsthyperhook}{%
\ifdefstring\glslabel{ut}%
{\setkeys{glslink}{hyper=false}}%
{}%
}
\begin{document}
Use the entries: \gls{lorem}, \gls{dolor}, \gls{amet},
\gls{adipiscing}, \gls{ut}, \gls{elit}.
Use the entries again: \gls{lorem}, \gls{dolor}, \gls{amet},
\gls{adipiscing}, \gls{ut}, \gls{elit}.
Force the hyperlink on: \gls+{ut} or \gls[hyper=true]{ut}.
\printglossaries
\end{document}
得出的结果为:
对于更通用的解决方案,您可以列出所有不应具有超链接的条目的标签(例如,使用 提供的内部列表宏etoolbox
),或者您可以user1
在定义条目时使用键来将其标识为不应具有超链接的条目。例如:
\documentclass{article}
\usepackage[colorlinks]{hyperref}
\usepackage{glossaries}
\makeglossaries
% dummy entries copied from example-glossaries-brief.tex
\newglossaryentry{lorem}{name={lorem},description={ipsum}}
\newglossaryentry{dolor}{name={dolor},description={sit},user1={off}}
\newglossaryentry{amet}{name={amet},description={consectetuer},user1={off}}
\newglossaryentry{adipiscing}{name={adipiscing},description={elit}}
\newglossaryentry{ut}{name={ut},description={purus},user1={off}}
\newglossaryentry{elit}{name={elit},description={vestibulum}}
\renewcommand*{\glslinkcheckfirsthyperhook}{%
% Get the value of the user1 field
\glsletentryfield{\thisvalue}{\glslabel}{useri}%
% Test this value
\ifdefstring\thisvalue{off}%
{\setkeys{glslink}{hyper=false}}%
{}%
}
\begin{document}
Use the entries: \gls{lorem}, \gls{dolor}, \gls{amet},
\gls{adipiscing}, \gls{ut}, \gls{elit}.
Use the entries again: \gls{lorem}, \gls{dolor}, \gls{amet},
\gls{adipiscing}, \gls{ut}, \gls{elit}.
Force the hyperlink on: \gls+{ut} or \gls+{dolor}.
\printglossaries
\end{document}
得出的结果为:
另一种可能性是在第一次使用时允许超链接,然后在后续使用时禁用它:
\documentclass{article}
\usepackage[colorlinks]{hyperref}
\usepackage{glossaries}
\makeglossaries
% dummy entries copied from example-glossaries-brief.tex
\newglossaryentry{lorem}{name={lorem},description={ipsum}}
\newglossaryentry{dolor}{name={dolor},description={sit},user1={off}}
\newglossaryentry{amet}{name={amet},description={consectetuer},user1={off}}
\newglossaryentry{adipiscing}{name={adipiscing},description={elit}}
\newglossaryentry{ut}{name={ut},description={purus},user1={off}}
\newglossaryentry{elit}{name={elit},description={vestibulum}}
\renewcommand*{\glslinkcheckfirsthyperhook}{%
\ifglsused{\glslabel}
{%
% Get the value of the user1 field
\glsletentryfield{\thisvalue}{\glslabel}{useri}%
% Test this value
\ifdefstring\thisvalue{off}%
{\setkeys{glslink}{hyper=false}}%
{}%
}%
{}%
}
\begin{document}
Use the entries: \gls{lorem}, \gls{dolor}, \gls{amet},
\gls{adipiscing}, \gls{ut}, \gls{elit}.
Use the entries again: \gls{lorem}, \gls{dolor}, \gls{amet},
\gls{adipiscing}, \gls{ut}, \gls{elit}.
Force the hyperlink on: \gls+{ut} or \gls+{dolor}.
\printglossaries
\end{document}
得出的结果为:
编辑:提供了一种更简单的方法glossaries-extra
扩展包。使用此包,您可以为每个条目分配一个类别。默认值为,general
但可以通过使用category
键覆盖。这只是一个标签(避免使用特殊字符),用于独立于标识符type
和来识别特定条目组parent
。(例如,\newabbreviation
将类别设置为abbreviation
并将\newacronym
类别设置为acronym
。)
类别可以具有相关属性。该nohyper
属性表示这些条目的超链接应默认为关闭。例如,我可以有一个common
类别(表示常用术语),其nohyper
属性为开启:
\documentclass{article}
\usepackage[colorlinks]{hyperref}
\usepackage{glossaries-extra}
\makeglossaries
\glssetcategoryattribute{common}{nohyper}{true}
% dummy entries copied from example-glossaries-brief.tex
\newglossaryentry{lorem}{name={lorem},description={ipsum}}
\newglossaryentry{dolor}{name={dolor},description={sit},category={common}}
\newglossaryentry{amet}{name={amet},description={consectetuer},category={common}}
\newglossaryentry{adipiscing}{name={adipiscing},description={elit}}
\newglossaryentry{ut}{name={ut},description={purus},category={common}}
\newglossaryentry{elit}{name={elit},description={vestibulum}}
\begin{document}
Use the entries: \gls{lorem}, \gls{dolor}, \gls{amet},
\gls{adipiscing}, \gls{ut}, \gls{elit}.
Use the entries again: \gls{lorem}, \gls{dolor}, \gls{amet},
\gls{adipiscing}, \gls{ut}, \gls{elit}.
Force the hyperlink on: \gls+{ut} or \gls+{dolor}.
\printglossaries
\end{document}
答案3
nonumber
您可以在创建首字母缩略词/词汇表条目时,通过设置选项来定义是否在末尾列出页码true
。使用glossaries-extra
此选项可能如下所示:
\newabbreviation[nonumberlist=true]{foo}{Foo}{Foo description}
\longnewglossaryentry{bar}{name={Bar},nonumberlist=true}{Bar description}