Latex ignoriert das Attribut „see“ für \newglossaryentry, wenn nonumberlist im Glossarpaket aktiviert wird.

Latex ignoriert das Attribut „see“ für \newglossaryentry, wenn nonumberlist im Glossarpaket aktiviert wird.

Das Seltsamste, was mir heute passiert ist:

Ich suchte nach einer Möglichkeit, von einer Abkürzung auf einen Glossareintrag zu verlinken und fanddiese Antwort. Beim Emulieren in meinem Code hat es nicht funktioniert – das Attribut pdflatexwurde ignoriert .see

Beim Herumprobieren habe ich festgestellt, dass dies nur passiert, wenn das glossariesPaket mit dem Attribut eingeschlossen wird nonumberlist– etwas, das keinerlei Einfluss auf Links haben sollte.

Minimales Codebeispiel:

\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}

Wie kann ich das beheben? Und warum passiert das überhaupt?

Antwort1

Dies ist dokumentiertes Verhalten. Zitat ausdas Handbuch:

keineNummernlisteMit dieser Option werden die zugehörigen Nummernlisten in den Glossaren unterdrückt (siehe auch Abschnitt 5).

sieheAutoNummernlisteWenn Sie die Nummernlisten unterdrücken mitkeineNummernliste, wie oben beschrieben, werden dadurch auch alle Querverweise unterdrückt, die durch den Schlüssel see in \newglossaryentryoder bereitgestellt werden \glssee. Wenn SiesieheAutoNummernliste, wird der Schlüssel „siehe“ automatisch nonumberlist=falsefür diesen Eintrag implementiert. (Beachten Sie, dass dies keine Auswirkungen hat \glssee.) Weitere Einzelheiten finden Sie in Abschnitt 8.

Eine mögliche Lösung besteht also darin, zusätzlich zu setzen seeautonumberlist. Dies kann den unerwünschten Effekt haben, dass der Akronymeintrag nun die Seitenzahl erhält, die Sie nonumberlistursprünglich vermeiden wollten:

% 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}

Eine Alternative besteht darin, die Referenz manuell in die Beschreibung des Akronyms einzufügen. Auf diese Weise erhalten Sie auch nicht die Seitenzahl im Akronymeintrag:

% 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}

verwandte Informationen