词汇表:显示“参见”参考但不显示页码

词汇表:显示“参见”参考但不显示页码

我正在尝试显示see交叉引用,但不显示文档中的页码。

我知道使用标准提供的方法是不可能的,所以我尝试使用
\renewcommand*{\glossaryentrynumbers}[1]{XXX}
XXX用我尝试过的各种方法替换)

适合我的代码。不幸的是,我缺乏 Latex 知识,这帮不上什么忙。

我必须放什么来代替才能XXX显示交叉引用,但不显示页码?


以下是一个例子(抱歉,我以为我的意思已经很清楚了):

文件:glossary.tex

\newacronym[see={{cutg}}]{cut}{CUT}{Code Under Test}
\newglossaryentry{cutg}{name={CUT},
    description={\acrfull{cut} refers to the part of the source code that is actually tested. It is a part of the entire source ode and modified before test generation. The tests are generated for the CUT, rather than the original source code. The CUT can be a function, a file or an entire component}
}

文件:report.tex

\documentclass[twoside]{article}


%Glossary
\usepackage[xindy,acronym]{glossaries} % nomain, if you define glossaries in a file, and you use \include{INP-00-glossary}
\setacronymstyle{long-short}
\makeglossaries
\usepackage[xindy]{imakeidx}
\makeindex[title=List of Terms]
\loadglsentries[main]{../../glossary}
\renewcommand{\acronymfont}[1]{\textit{#1}} % make acronms italics
\renewcommand{\firstacronymfont}[1]{\textit{#1}}
\renewcommand*{\seename}{Glossary:} % What text should be used for the see-field
%\renewcommand*{\glossaryentrynumbers}[1]{\glsseelist} % turn off ugly numbers (don't use the option for usepackage, otherwise see doesn't work)
\begin{document}

\glsaddall
\printglossaries

\end{document}

当我编译时,我生成了以下内容:突出显示的示例

我怎样才能去掉页码(图片中用红色矩形突出显示)?我尝试更新创建命令\glossaryentrynumbers,因为该选项[nonumberlist]显然做了同样的事情(据我所知,它调用

\renewcommand*{\glossaryentrynumbers}[1]{}

所以我的想法是,如果我自己重新定义它以仅包含查看列表,那么我就应该被排序。

答案1

seeautonumberlist选项设计用于与nonumberlist启用带有键的条目的位置列表的选项一起使用see,但这仅适用于带有键的条目see是文档中未使用的同义词的情况(否则您也会获得该条目的其余位置列表)。

例如:

\documentclass{report}

\usepackage[nonumberlist,seeautonumberlist]{glossaries}

\makeglossaries

\newglossaryentry{sample1}{name={sample},description={an example}}
\newglossaryentry{sample2}{name={another sample},
 description={another example},
 see={sample1}}

\begin{document}
\chapter{Sample}

A \gls{sample1}.

\printglossaries
\end{document}

得出的结果为:

词汇表图像,无位置列表,但有交叉引用

sample2如果我在文档中添加这样的引用:

\documentclass{report}

\usepackage[nonumberlist,seeautonumberlist]{glossaries}

\makeglossaries

\newglossaryentry{sample1}{name={sample},description={an example}}
\newglossaryentry{sample2}{name={another sample},
 description={another example},
 see={sample1}}

\begin{document}
\chapter{Sample}

A \gls{sample1} and \gls{sample2}.

\printglossaries
\end{document}

然后页码也会显示出来sample2

交叉引用前的词汇表图片及页码

在这种情况下,将交叉引用移到描述中会更简单:

\documentclass{report}

\usepackage[nonumberlist]{glossaries}

\makeglossaries

\newglossaryentry{sample1}{name={sample},description={an example}}
\newglossaryentry{sample2}{name={another sample},
 description={another example, \emph{see} \gls{sample1}}}

\begin{document}
\chapter{Sample}

A \gls{sample1} and \gls{sample2}.

\printglossaries
\end{document}

得出的结果为:

没有位置列表的词汇表图像

glossaries用户手册\gls在描述字段中使用了类似的方式。)

另一种可能性是使用\glsseeformat它可以接受逗号分隔的标签列表,并且是使用键时交叉引用在位置列表中显示的方式see。如果使用此命令,请记住有两个强制参数。最后一个参数是为了方便而提供的makeindex,尽管 LaTeX 会忽略它,但必须存在。

\documentclass{report}

\usepackage[nonumberlist]{glossaries}

\makeglossaries

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

\newglossaryentry{sample2}{name={another sample},
 description={another example, \glsseeformat{sample1,sample3}{}}}

\newglossaryentry{sample3}{name={third sample},
 description={yet another example}}

\begin{document}
\chapter{Sample}

A \gls{sample1} and \gls{sample2}.

\printglossaries
\end{document}

得出的结果为:

生成的词汇表的图像

可选参数允许您覆盖“see”标签:

\glsseeformat[see also]{sample1,sample3}{}

对于缩写,您需要覆盖类似 样式的默认描述long-short。例如:

\setacronymstyle{long-short}
\newacronym[description={an example, see \gls{sample1}}]{anex}{anex}{an example}

编辑:另一种可能性是使用glossaries-extra扩展包存储了键的值see(基础glossaries包不这样做)。这意味着see当数字列表被抑制时,可以在词汇表中访问键的值。版本 1.06glossaries-extra添加了一个方便使用的命令\glsxtrusesee{标签}这使得访问值更加容易。如果键see为空,则此命令不执行任何操作标签,否则\glsseeformat[标签]{xr 列表}{},其中标签和交叉引用列表是从字段中获取的see

可以修改后描述钩子来添加此功能。例如:

\documentclass{report}

\usepackage[nonumberlist,nopostdot=false]{glossaries-extra}

\makeglossaries

\newglossaryentry{sample1}{name={sample},description={an example}}
\newglossaryentry{sample2}{name={another sample},
 description={another example},
 see={sample1}}

\renewcommand*{\glsxtrpostdescgeneral}{%
 \ifglshasfield{see}{\glscurrententrylabel}
 {, \glsxtrusesee{\glscurrententrylabel}}%
 {}%
}

\begin{document}
\chapter{Sample}

A \gls{sample1} and \gls{sample2}.

\printglossaries
\end{document}

得出的结果为:

示例图

glossaries-extra软件包还方便地让密钥触发在文档末尾的see自动使用。这意味着以下内容只需要构建序列,,即可包含文档中的所有交叉引用:\glsxtraddallcrossrefslatexmakeglossarieslatex

% arara: pdflatex
% arara: makeglossaries
% arara: pdflatex
\documentclass{article}

\usepackage[nonumberlist,nopostdot=false]{glossaries-extra}

\makeglossaries

\renewcommand*{\glsxtrpostdescgeneral}{%
 \ifglshasfield{see}{\glscurrententrylabel}
 {, \glsxtrusesee{\glscurrententrylabel}}%
 {}%
}

\newglossaryentry{sample1}{name={sample 1},description={an example}}
\newglossaryentry{sample2}{name={sample 2},description={an
example},see={sample1}}
\newglossaryentry{sample3}{name={sample 3},description={an
example},see={sample2}}
\newglossaryentry{sample4}{name={sample 4},description={an
example},see=[see also]{sample2,sample3}}

\begin{document}
\gls{sample4}.

\printglossaries

\end{document}

得出的结果为:

词汇表图片

相关内容