我已经在网上搜索了几天这个问题,但找不到解决方案。我为我的论文创建了一个词汇表,当我显示它时,我在描述的末尾看到了当前页码。例如,我得到以下结果:
电脑是一种可编程的机器,可以接收输入、存储和处理数据并以有用的格式提供输出。[当前页面] [另一页] [另一页]。
我想从页码列表中删除 [当前页面],并且只删除该页。可以吗?
首字母缩略词也存在同样的问题。
这是一个说明我的问题的小代码
\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}}%
}%
}
我不知道是否有更好的方法来做到这一点,但它对我来说有效。