在词汇表包上启用 nonumberlist 时,Latex 决定忽略 \newglossaryentry 的查看属性

在词汇表包上启用 nonumberlist 时,Latex 决定忽略 \newglossaryentry 的查看属性

今天发生了一件最奇怪的事:

我正在寻找一种将缩写链接到词汇表条目的方法,并发现这个答案。当我在我的代码中模拟它时,它不起作用 -pdflatex会忽略该see属性。

经过一番摸索,我发现只有当glossaries包中包含nonumberlist属性时才会发生这种情况 - 这对链接不应该产生任何影响。

最小代码示例:

\documentclass{article}
\usepackage{hyperref}

\usepackage[nonumberlist, acronym]{glossaries}

\makeglossaries

%%% define the acronym and use the see= option
\newglossaryentry{css}{type=\acronymtype, name={CSS}, description={Cascading Style Sheets}, first={Cascading Style Sheets (CSS)}, see=[Glossary:]{cssg}}
\newglossaryentry{cssg}{name={Cascading Style Sheets},
                     description={A language for specifying presentation      attributed of XML documents.}}

\begin{document}

\glsaddall

% Acronyms
\printglossary[type=\acronymtype]

% Glossary
\printglossary[style=altlist,title=Glossary]

\end{document}

我该如何解决这个问题?为什么会发生这种情况?

答案1

这是有据可查的行为。引自手册

非数字列表此选项将隐藏词汇表中的相关数字列表(另请参阅第 5 节)。

参见自动编号列表如果你使用非数字列表如上所述,这还将抑制 \newglossaryentry或中的 see 键提供的任何交叉引用信息\glssee。如果您使用参见自动编号列表,则该条目将自动实现查看键nonumberlist=false。(请注意,这不会影响\glssee。)有关详细信息,请参阅第 8 节。

因此,一个可能的解决方案是同时设置。这可能会产生不良影响,即首字母缩略词条目现在会获得您最初seeautonumberlist想要避免的页码:nonumberlist

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

\usepackage[nonumberlist,seeautonumberlist,acronym]{glossaries}

\makeglossaries

%%% define the acronym and use the see= option
\newglossaryentry{css}{
  type=\acronymtype,
  name={CSS},
  description={Cascading Style Sheets},
  first={Cascading Style Sheets (CSS)},
  see=[Glossary:]{cssg}
}
\newglossaryentry{cssg}{
  name={Cascading Style Sheets},
  description={A language for specifying presentation attributed of XML documents}
}

\begin{document}

\glsaddall

% Acronyms
\printglossary[type=\acronymtype]

% Glossary
\printglossary[style=altlist,title=Glossary]

\end{document}

另一种方法是手动将参考添加到首字母缩略词的描述中。这样,您也不会在首字母缩略词条目中获得页码:

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

\usepackage[nonumberlist,acronym]{glossaries}

\makeglossaries

%%% define the acronym
\newglossaryentry{css}{
  type=\acronymtype,
  name={CSS},
  description={Cascading Style Sheets. \textit{Glossary:} \gls{cssg}},
  first={Cascading Style Sheets (CSS)}
}
\newglossaryentry{cssg}{
  name={Cascading Style Sheets},
  description={A language for specifying presentation attributed of XML documents}
}

\begin{document}

\glsaddall

% Acronyms
\printglossary[type=\acronymtype]

% Glossary
\printglossary[style=altlist,title=Glossary]

\end{document}

相关内容