仅包含指定链接的词汇表页面列表

仅包含指定链接的词汇表页面列表

当使用词汇表包生成词汇表时,如果\gls{}在许多地方使用该命令,则每个条目的页面列表会变得非常长,例如

页面列表示例 我希望能够抑制页面列表(保留文本中指向词汇表的链接)并仅保留指定的链接条目,例如粗体条目,这可以通过以下方式很好地实现

 \gls[format=hyperbf]{label}

类似于

 \gls[format=pagelistinclude]{label}

这样它就会出现在页面列表中,而刚好\gls{label}不会。

我怎样才能做到这一点?

答案1

glossaries-extra提供了一个额外的键noindex,可用于命令的可选参数,例如,\gls抑制该用途的索引,因此您可以\gls{label}正常使用索引并\gls[noindex]{label}抑制索引。但是,如果您更经常想要抑制索引,您可能会发现关闭默认索引更容易,可以使用以下方法完成:

\GlsXtrSetDefaultGlsOpts{noindex}

然后你只需要使用\gls[noindex=false]{label}你实际想要索引条目的位置来打开它。例如:

\documentclass{article}

\usepackage[colorlinks]{hyperref}
\usepackage{glossaries-extra}

\makeglossaries

\GlsXtrSetDefaultGlsOpts{noindex}

\newglossaryentry{sample}{name={sample},description={an example}}

\begin{document}
This is a sample document.
The \gls{sample} entry is used on this page but isn't indexed.

\newpage
The \gls[noindex=false]{sample} entry is used on this page and is indexed.

\newpage
The \gls{sample} entry is used on this page but isn't indexed.

\newpage
\printglossaries

\end{document}

您可能希望设置修饰符以提供简写版本。选择一个字符,然后>将其设置为修饰符:

\GlsXtrSetAltModifier{>}{noindex=false}

现在\gls>{label}相当于\gls[noindex=false]{label}

\documentclass{article}

\usepackage[colorlinks]{hyperref}
\usepackage{glossaries-extra}

\makeglossaries

\GlsXtrSetDefaultGlsOpts{noindex}
\GlsXtrSetAltModifier{>}{noindex=false}

\newglossaryentry{sample}{name={sample},description={an example}}

\begin{document}
This is a sample document.
The \gls{sample} entry is used on this page but isn't indexed.

\newpage
The \gls>{sample} entry is used on this page and is indexed.

\newpage
The \gls{sample} entry is used on this page but isn't indexed.

\newpage
\printglossaries

\end{document}

答案2

对于您不想要页码的条目,请使用虚拟计数器(不产生任何文本)。

\newcounter{dummy}
\renewcommand\thedummy{}

This one gets the bold reference in the glossary:
\gls[format=hyperbf]{term}
\newpage

This one will get a link to the glossary, but no page number in the glossary: 
\gls[counter=dummy]{term}

您甚至可以counter=dummy通过为提供额外的可选参数来使其成为默认值\newglossary,例如

\newglossary[slg]{symbol}{sot}{stn}{Symbols}[dummy]

或者将其作为包选项:

\usepackage[counter=dummy,...]{glossaries}

但是然后您必须counter=page为那些必须注册页码的条目添加选项。

\gls[format=hyperbf,counter=page]{term}

\usepackage如果您有多个词汇表(如命名法),该选项可能不是最佳选择。

相关内容