今天發生在我身上最奇怪的事情是:
我正在尋找一種從縮寫連結到術語表條目的方法,並發現這個答案。當在我的程式碼中模擬它時,它不起作用 -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 節)。
請參閱自動號碼列表如果您使用以下命令抑制數字列表無編號列表,如上所述,這還將抑制由 see 鍵提供的任何交叉引用資訊
\newglossaryentry
或\glssee
中的 see 鍵提供的任何交叉引用資訊。如果你使用請參閱自動號碼列表,see 鍵將自動執行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}