Hallo Community,

ist es möglich, mit dem Paket glossaries einheitlich aussehende Verzeichnisse zu erstellen? Ich habe das mal versucht, aber die Breite der Verzeichniss scheint vom längsten Eintrag abzuhängen. Die vertikalen Abstände einzelner Elemente sind bei unterschiedlichen Verzeichnissen auch nicht einheitlich. Gibt es eine Möglichkeit, als Breite z.B. fest die Textbreite vorzugeben und den vertikalen Abstand auch einheitlich hinzubekommen? Oder gibt es vielleicht sogar andere Pakete, die man in Kombination mit KOMA-Script bevorzugen sollte?

Vielen Dank vorab!

Hier mein Minimalbeispiel:

% Abkürzungs- und Formelzeichenverzeichnis

\documentclass[fontsize=11, toc=listof]{scrartcl}
\usepackage[acronym, toc, symbols]{glossaries}
\usepackage{hyperref}

\makenoidxglossaries

% Abkürzungen
\newacronym{bsp}{bsp}{beispielsweise}
\newacronym{usw}{usw}{und so weiter}
\newacronym{etc}{etc}{et cetera}

% Symbole
\newglossaryentry{sym:alpha}{name=\ensuremath{\alpha}, description={ein griechischer Buchstabe}, type = 
symbols}
\newglossaryentry{sym:beta}{name=\ensuremath{\beta}, description={ein weitere griechischer Buchstabe}, 
type = symbols}
\newglossaryentry{sym:gamma}{name=\ensuremath{\gamma}, description={und noch ein griechischer 
Buchstabe}, type = symbols}

\begin{document}
\pagenumbering{roman}
\tableofcontents

%\newpage
\printnoidxglossary[type = \acronymtype, title=Abkürzungsverzeichnis, 
    toctitle=Abkürzungsverzeichnis, style = long3col]

%\newpage
\printnoidxglossary[type = symbols, title=Symbolverzeichnis, toctitle=Symbolverzeichnis, sort=def, 
    style = long3col]

\newpage
\pagenumbering{arabic}
\section{Bekannte Abkürzungen}
Die Abkürzung \acrshort{bsp} steht für  \acrlong{bsp}.
Die Abkürzung \acrshort{usw} steht für  \acrlong{usw}.
Die Abkürzung \acrshort{etc} steht für  \acrlong{etc}.

\section{Bekannte griechische Buchstaben}
\gls{sym:alpha}, \gls{sym:beta} und \gls{sym:gamma} sind drei griechische Buchstaben.

\end{document}

gefragt 14 Nov '21, 08:29

AndreGismo's gravatar image

AndreGismo
596626
Akzeptiert-Rate: 72%


Zunächst ist zu erwähnen, dass die vertikalen Abstände im Abkürzungsverzeichnis von der Voreinstellung nogroupskip=false kommen. Während im Symbolverzeichnis alles als griechische Buchstaben und damit der Kategorie Symbole zugeordnet wird, wird im Abkürzungsverzeichnis nach Anfangsbuchstaben gruppiert. Das kann man einfach mit Option nogroupskip abschalten. Siehe dazu auch die glossaries-Anleitung, Abschnitt 2.3 oder Abschnitt 8. Das Glossary auf Seite 10 der glossaries-Anleitung verwendet übrigens ebenfalls nogroupskip, was dort auch dokumentiert ist.

Was die horizontale Aufteilung betrifft, sei darauf hingewiesen, dass diese bei glossaries von der Wahl des Stils abhängt. Du hast den Stil long3col gewählt. Dabei wird eine Tabelle verwendet, die als

%!TeX none
\renewenvironment{theglossary}%
  {\begin{longtable}{lp{\glsdescwidth}p{\glspagelistwidth}}}%
  {\end{longtable}}%

definiert ist. Wie du siehst, ist die erste Spalte dabei eine l-Spalte. Selbstverständlich kann man sich auch einfach einen Stil definieren, bei dem die erste Spalte eine feste Breite hat. Will man die gesamte Textbreite nutzen, böte sich beispielsweise eine xltabular mit Hilfe des gleichnamigen Pakets an. Man kann aber die Breite auch leicht selbst berechnen, beispielsweise:

%!TeX none
\newlength{\glssymwidth}
\newglossarystyle{long3colfixwidth}{%
  \setglossarystyle{long3col}%
  \renewenvironment{theglossary}{%
    \setlength{\glssymwidth}{\dimexpr \linewidth
                                     -\glspagelistwidth
                                     -\glsdescwidth
                                     -4\tabcolsep\relax}%
    \begin{longtable}{@{}p{\glssymwidth}p{\glsdescwidth}>{\raggedleft}p{\glspagelistwidth}@{}}%
  }{%
    \end{longtable}%
  }%
}

Wie du siehst, habe ich hier einfach aufbauend auf long3col einen neuen Stil long3colfixwidth definiert. Die Breite der ersten Spalte habe ich aus der Zeilenlänge \linewidth, den Breiten der beiden anderen Spalten \glspagelistwidth und \glsdescwidth und den Spaltenabständen (jeweils 2\tabcolsep zwischen den Spalten) berechnet. Um den einfachen Spaltenabstand \tabcolsep vor der ersten und nach der letzten Spalte zu entfernen, habe ich am Anfang und Ende der Spaltendeklaration ein @{} eingefügt. Außerdem habe ich die letzte Spalte mit >{\reaggedleft} rechtsbündig gesetzt. Dafür wird zusätzlich Paket array benötigt. Insgesamt ergibt sich damit:

\documentclass[fontsize=11, toc=listof]{scrartcl}
\usepackage{array}
\usepackage[acronym, toc, symbols, nogroupskip]{glossaries}
\usepackage{hyperref}

\newlength{\glssymwidth}
\newglossarystyle{long3colfixwidth}{%
  \setglossarystyle{long3col}%
  \renewenvironment{theglossary}{%
    \setlength{\glssymwidth}{\dimexpr \linewidth
                                     -\glspagelistwidth
                                     -\glsdescwidth
                                     -4\tabcolsep\relax}%
    \begin{longtable}{@{}p{\glssymwidth}p{\glsdescwidth}>{\raggedleft}p{\glspagelistwidth}@{}}%
  }{%
    \end{longtable}%
  }%
}    
\makenoidxglossaries

% Abkürzungen
\newacronym{bsp}{bsp}{beispielsweise}
\newacronym{usw}{usw}{und so weiter}
\newacronym{etc}{etc}{et cetera}

% Symbole
\newglossaryentry{sym:alpha}{name=\ensuremath{\alpha}, description={ein griechischer Buchstabe}, type = 
symbols}
\newglossaryentry{sym:beta}{name=\ensuremath{\beta}, description={ein weitere griechischer Buchstabe}, 
type = symbols}
\newglossaryentry{sym:gamma}{name=\ensuremath{\gamma}, description={und noch ein griechischer 
Buchstabe}, type = symbols}

\begin{document}
\pagenumbering{roman}
\tableofcontents

%\newpage
\printnoidxglossary[type = \acronymtype, title=Abkürzungsverzeichnis, 
    toctitle=Abkürzungsverzeichnis, style = long3colfixwidth]

%\newpage
\printnoidxglossary[type = symbols, title=Symbolverzeichnis, toctitle=Symbolverzeichnis, sort=def, 
    style = long3colfixwidth]

\newpage% Sollte besser \cleardoubleoddpage sein (siehe KOMA-Script-Anleitung,
        % Erklärung \pagenumbering)
\pagenumbering{arabic}
\section{Bekannte Abkürzungen}
Die Abkürzung \acrshort{bsp} steht für  \acrlong{bsp}.
Die Abkürzung \acrshort{usw} steht für  \acrlong{usw}.
Die Abkürzung \acrshort{etc} steht für  \acrlong{etc}.

\section{Bekannte griechische Buchstaben}
\gls{sym:alpha}, \gls{sym:beta} und \gls{sym:gamma} sind drei griechische Buchstaben.

\end{document}

Zu \glsdescwidth und \glspagelistwidth sei explizit auf die glossaries-Anleitung verwiesen.

Es sei außerdem darauf hingewiesen, dass fontsize=11 besser fontsize=11pt wäre und man das getrost weglassen kann, weil es der Voreinstellung entspricht. Desweiteren erscheint mit die Verwendung von \pagenumbering in Artikel-Dokumenten maßlos übertrieben. Zudem bricht es die Struktur von Artikel-Dokumenten, weil es entgegen der übrigen Abschnitte eine neue (rechte) Seite erfordert. Ich habe das trotzdem unverändert gelassen.

Permanenter link

beantwortet 14 Nov '21, 10:57

gast3's gravatar image

gast3
(ausgesetzt)
Akzeptiert-Rate: 53%

Ah perfekt, das schaut genauso aus, wie ich mir das vorgestellt hatte :)

Vielen Dank, vor allem für das ausführliche Beispiel und die Erklärung!

Ja ich hatte auch schon überlegt, einen scrreprt zu verwenden, aber die Vorgabe meiner Hochschule ist einfach nur ein article. Deshalb denke ich, gehe ich da mit scrartcl sicherheitshalber lieber konform.

(15 Nov '21, 07:41) AndreGismo

@AndreGismo Da die Frage klar gestellt war und einschließlich eines vollständigen und weitgehend minimalen und korrekt markierten Beispiels alles enthielt, was an Informationen benötigt wurde, war es mir eine Freude.

(15 Nov '21, 14:05) gast3
Deine Antwort
Vorschau umschalten

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs fügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×46

gestellte Frage: 14 Nov '21, 08:29

Frage wurde gesehen: 2,595 Mal

zuletzt geändert: 15 Nov '21, 14:05