今天发生了一件最奇怪的事:
我正在寻找一种将缩写链接到词汇表条目的方法,并发现这个答案。当我在我的代码中模拟它时,它不起作用 -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}