PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Mehrfacheinträge bei Abkürzungsverzeichnis mit glossaries



LuPi
27-03-2012, 11:44
"Eigentlich" wollte ich auf glossaries umsteigen (von einer selbstgebauten
Lösung, zu der ich eventuell auch noch eine Frage stellen muss), aber da
bin ich auf ein recht lästiges Problem gestoßen.


\documentclass{scrbook}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[sanitize=none]{glossaries}
\newcommand{\loaentry}[3][]{\ifthenelse{\equal{#1}{}}{\newacronym{#2}{#2}{#3} }{\newacronym{#1}{#2}{#3}}}
\makeglossaries
\begin{document}
\loaentry{dh}{das heißt}
\loaentry[u]{ü}{übel}
\loaentry{dh}{die Hälfte}
\loaentry{dh}{das heißt}
\newpage
\printglossary[type=\acronymtype]
\end{document}


Bei mir treten häufiger Mehrfacheinträge auf, die ich mit vernünftigem
Aufwand aufgrund der flexiblen Zusammenstellung meiner Arbeitsblätter
nicht vermeiden kann. Außerdem - das ist etwas unglücklich, aber nicht in
meiner Hand - werden einige Abkürzungen mit verschiedenen Bedeutungen
genutzt. Auch hier: Das kann ich über den label-Eintrag (dh1, dh2 usw.)
prinzipiell umgehen, aber dann muss ich ständig danach schauen, ob eine
Abkürzung gegebenenfalls schon woanders aufgetreten ist und entsprechend
unterschiedliche label vergeben. Das ist absolut LaTeX-unlike: fehleranfällig
und wenig elegant. Gibt es eine Lösung mit glossaries für diese Forderungen?

u_fischer
27-03-2012, 13:13
Nun, du kannst die Fehlermeldung komplett unterdrücken oder stattdessen eine Warnung ausgeben:


\renewcommand{\glsdoifnoexists}[2]{%
\ifglsentryexists{#1}{%
\PackageWarning{glossaries}{Glossary entry `#1' has already
been defined}{}}{#2}%
}


Aber ich würde dir eher empfehlen, alle Einträge -- schön alphabetisch sortiert -- in einer gemeinsamen Datei zu sammeln, die du dann in den jeweiligen Dokument lädst. Und dabei solltest du für unterschiedliche Dinge auch unterschiedliche Keys benutzen. Sonst musst du in jedem Dokument neu die Einträge zusammenstellen und über geeignete Abkürzungen nachdenken, und andauernd aufpassen, wenn du Textabschnitte von einem Dokument zu einem anderen kopierst. Und was machst du wenn du sowohl "das heißt" als auch "die Hälfte" brauchst?

LuPi
27-03-2012, 13:42
Nun, du kannst die Fehlermeldung komplett unterdrücken oder stattdessen eine Warnung ausgeben:


\renewcommand{\glsdoifnoexists}[2]{%
\ifglsentryexists{#1}{%
\PackageWarning{glossaries}{Glossary entry `#1' has already
been defined}{}}{#2}%
}



Gut, das werde ich ausprobieren.


Und was machst du wenn du sowohl "das heißt" als auch "die Hälfte" brauchst?

Das stört mich nicht. Ganz im Gegenteil: Das ist absolut zu erwarten. Das
klingt im ersten Moment widersinnig, aber ich habe schlicht vergessen, bei
meinem Ausgangspost einen wichtigen Punkt zu erwähnen. Ich nutze nur
einen Teil der glossaries-Möglichkeiten, da ich nur ein Abkürzungsverzeichnis
erstelle!