在詞彙表包上啟用 nonumberlist 時,Latex 決定忽略 \newglossaryentry 的 see 屬性

在詞彙表包上啟用 nonumberlist 時,Latex 決定忽略 \newglossaryentry 的 see 屬性

今天發生在我身上最奇怪的事情是:

我正在尋找一種從縮寫連結到術語表條目的方法,並發現這個答案。當在我的程式碼中模擬它時,它不起作用 -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}

相關內容