词汇表:显示页码但不显示当前页

词汇表:显示页码但不显示当前页

我已经在网上搜索了几天这个问题,但找不到解决方案。我为我的论文创建了一个词汇表,当我显示它时,我在描述的末尾看到了当前页码。例如,我得到以下结果:

电脑是一种可编程的机器,可以接收输入、存储和处理数据并以有用的格式提供输出。[当前页面] [另一页] [另一页]。

我想从页码列表中删除 [当前页面],并且只删除该页。可以吗?

首字母缩略词也存在同样的问题。

这是一个说明我的问题的小代码

\documentclass{book}
\usepackage{hyperref}
\usepackage{glossaries}
\makeglossaries

\begin{document}

%%%%% Glossaire %%%%%
\newacronym{fps}{FPS}{Frame Per Second}         % Unused but display this page
\newglossaryentry{computer}                     % Used but I don't want to see the page 1
{
  name=Computer,
  text=computer,
  description={is a programmable machine that receives input, stores and manipulates data, and provides output in a useful format.},
  plural=computers
}

\renewcommand*{\glossaryname}{Glossaire}    % Change the default name of the glossary
\renewcommand*{\glspostdescription}{}       % Delete the trailing point if using package glossaries with nonumberlist as arguments
\glsaddall                      % Add all the terms in the glossairy (these.glo)
\printglossaries                % Print all the terms included in these.glo
\clearpage
%%%%%%%%%%%%%%%%%%%%%

%%%%% Example %%%%%%%
\chapter{Super Title}
Here I use the reference to a \gls{computer}. It's a small example that show my problem.

\end{document}

为了编译我执行以下操作

pdflatex document.tex
makeglossaries document.glo
pdflatex document.tex
pdflatex document.tex

答案1

问题是将\glsaddall词汇表中的所有条目连同它们的当前位置一起添加到“数字列表”中。

因此,您应该使用\glsaddallunused而不是\glsaddall。前者会跳过任何已使用的条目,并且还会忽略数字列表中的当前位置。

只需记住将此命令放在所有使用的条目之后,否则glossaries不知道哪些条目已被使用。

因此,我建议您将此命令放在之前\end{document},如以下 MWE:

\documentclass{book}
\usepackage{hyperref}
\usepackage{glossaries}
\makeglossaries

\begin{document}

%%%%% Glossaire %%%%%
\newacronym{fps}{FPS}{Frame Per Second}         % Unused but display this page
\newglossaryentry{computer}                     % Used but I don't want to see the page 1
{
  name=Computer,
  text=computer,
  description={is a programmable machine that receives input, stores and manipulates data, and provides output in a useful format.},
  plural=computers
}

\renewcommand*{\glossaryname}{Glossaire}    % Change the default name of the glossary
\renewcommand*{\glspostdescription}{}       % Delete the trailing point if using package glossaries with nonumberlist as arguments
\printglossaries                % Print all the terms included in these.glo
\clearpage
%%%%%%%%%%%%%%%%%%%%%

%%%%% Example %%%%%%%
\chapter{Super Title}
Here I use the reference to a \gls{computer}. It's a small example that show my problem.

\glsaddallunused                % Add all the unused terms in the glossairy (these.glo)
\end{document} 

输出:

在此处输入图片描述

答案2

如果有人遇到了和我同样的问题,并且您的 glossary.sty 已过时,下面是我修复它的方法。

注意:这只是一个临时解决方案。您应该更新您的软件包。

我找到了最新版本的词汇表.sty 在线并将命令 \glsaddallunused 复制到我的项目类中。您需要替换\新稳健命令经过\新命令

\newcommand*{\glsaddallunused}[1][\@glo@types]{%
 \forallglsentries[#1]{\@glo@entry}%
 {%
    \ifglsused{\@glo@entry}{}{\glsadd[format=@gobble]{\@glo@entry}}%
 }%
}

我不知道是否有更好的方法来做到这一点,但它对我来说有效。

相关内容