Glossaries: Unterteiltes Glossary und falsche Darstellung

Erstellen von Index, Glossar, Symbolverzeichnis, einer Nomenklatur etc. mit MakeIndex oder Xindy


KlainerFaigling
Forum-Newbie
Forum-Newbie
Beiträge: 5
Registriert: Mo 10. Okt 2016, 22:49

Glossaries: Unterteiltes Glossary und falsche Darstellung

Beitrag von KlainerFaigling »

Hallo zusammen,

ich habe folgende Probleme:

Zum einen möchte ich ein gegliedertes Symbolverzeichnis. "Symbolverzeichnis" als Section und die Unterpunkte als Subsection.
Dies schaffe ich, wenn ich selbst eine Überschrift erstelle und die Glossaries als Subsection einbinde, allerdings wird dann auch das Abkürzungsverzeichnis auf die Subsection-Ebene gestellt. Kann ich das anpassen?
Anbei eine Datei, wie es aussehen soll. Da habe ich ein wenig rumgepfuscht, um das hinzukriegen, aber ich denke, es gibt auch eine saubere Lösung.

Außerdem wird im Symbolverzeichnis irgendetwas durcheinander geworfen, wodurch die Darstellung der einzelnen Zeilen des Longtable drunter und drüber gehen. Warum?

Vielen Dank für eure Hilfe. Ich bin noch ein Noob, weiß also alles, was ich weiß, von irgendwelchen Internetseiten (à la copy & paste).

Hier mein Code:
%Praeambel
	% Papierformat, Schriftgröße, Dokumentstil
		\documentclass[a4paper, 12pt]{scrartcl}
	% wegen deutschen Umlauten
		\usepackage[utf8]{inputenc}
	% wegen deutsch
		\usepackage{ngerman}
		\usepackage[ngerman]{translator}
	%Links ohne Roten Rahmen im PDF
		\usepackage[hidelinks]{hyperref}
	%Glossary und Abkürzungsverzeichnis
		\usepackage[nonumberlist, acronym, section=subsection]{glossaries}
		%Eigenes Symbolverzeichnisse erstellen
			\newglossary[slglt]{latin_symbols}{syilt}{syglt}{Lateinische Symbole}
			\newglossary[slggr]{greek_symbols}{syigr}{syggr}{Griechische Symbole}
			\newglossary[slgc]{constants}{syic}{sygc}{Konstanten}
			\newglossary[slgi]{indices}{syii}{sygi}{Indizes}
		%Ein neuer Verzeichnisstil für Abkürzungen
			\newglossarystyle{acronym}{ 
				\setglossarystyle{long3col}
				\renewenvironment{theglossary}  
				{\begin{longtable}{@{} p{0.2\textwidth} @{} p{0.8\textwidth} @{} l @{}}}  
				{\end{longtable}}
				% Kopf der Tabelle
					\renewcommand*{\glossaryheader}{
						\bfseries Abkürzung
						& \bfseries Bedeutung
						& \bfseries
						\\[3mm]
						\endhead
					}
					\renewcommand*{\glossaryentryfield}[5]{
						\glstarget{##1}{##2} %Abkürzung
						& ##5	%Beschreibung
						& ##1 %Site Number
						\\
					}
			}
		%Ein neuer Verzeichnisstil für Symbole, der auch die Einheit mit ausgibt
			\newglossarystyle{symbols}{
				\renewenvironment{theglossary}
				{\begin{longtable}{@{} p{0.2\textwidth} @{} p{0.2\textwidth} @{} p{0.6\textwidth} @{} l @{}}}
				{\end{longtable}}
				% Kopf der Tabelle
					\renewcommand*{\glossaryheader}{
						\bfseries Symbol
						& \bfseries Einheit 
						& \bfseries Bedeutung
						& \bfseries
						\\[3mm]
						\endhead
					}
					\renewcommand*{\glossaryentryfield}[5]{
						\glstarget{##1}{##2}
						& [\glsentryuseri{##1}]
						& ##3
						& ##5
						\\
					}
			}
		%Ein neuer Verzeichnisstil für Konstanten, der auch die Einheit und einen Wert mit ausgibt
			\newglossarystyle{constants}{
				\renewenvironment{theglossary}
				{\begin{longtable}{@{} p{0.15\textwidth} @{} p{0.15\textwidth} @{} p{0.15\textwidth} @{} p{0.55\textwidth} @{} l@{}}}%  
				{\end{longtable}}
				% Kopf der Tabelle
					\renewcommand*{\glossaryheader}{  
						\bfseries Symbol
						& \bfseries Einheit
						& \bfseries Wert
						& \bfseries Bedeutung
						& \bfseries
						\\[3mm]
						\endhead
					}
					\renewcommand*{\glossaryentryfield}[5]{  
						\glstarget{##1}{##2} %entry name
						& [\glsentryuseri{##1}]%Einheit
						& \glsentryuserii{##1}%Wert
						& ##3 %Description
						& ##5	%Site Number
						\\
					}
			}
		%Ein neuer Verzeichnisstil für Indizes, wie ein Abkürzungsverzeichnis, nur statt Abkürzung Index
		\newglossarystyle{indices}{  
			\setglossarystyle{acronym}
			% Kopf der Tabelle
				\renewcommand*{\glossaryheader}{  
					\bfseries Index
					& \bfseries Bedeutung
					& \bfseries
					\\[3mm]
					\endhead
					}
		}
		\renewcommand*{\glspostdescription}{}
		\makeglossaries
		\deftranslation[to=German]{Acronyms}{Abkürzungsverzeichnis}
	%Glossaryeinträge
		\newacronym{cd}{CD}{Compact Disk}
		\newacronym{adac}{ADAC}{Allgemeiner Deutscher Automobil Club}

		\newglossaryentry{widerstand}{
			type=latin_symbols,
			name={\ensuremath{R}},
			sort=Widerstand,
			symbol={\ensuremath{R}}, 
			description={Elektrischer Widerstand},
			user1={\ensuremath{\Omega}}}
		\newglossaryentry{dichte}{
			type=greek_symbols,
			name={\ensuremath{\rho}},
			sort=Dichte,
			symbol={\ensuremath{\rho}},
			description={Dichte},
			user1={\ensuremath{\frac{kg}{m^3}}}
			}
		\newglossaryentry{druck}{
			type=latin_symbols,
			name={\ensuremath{p}},  
			sort=Druck,
			symbol={\ensuremath{p}},
			description={Druck},
			user1={\ensuremath{\frac{N}{m^2}}}
			}
		\newglossaryentry{querschnitt}{
			type=latin_symbols,
			name={\ensuremath{A}},
			sort=Querschnittsfläche,
			symbol={\ensuremath{A}},
			description={Querschnittsfläche},
			user1={\ensuremath{m^2}}
			}
		\newglossaryentry{pi}{
			type=constants,
			name={\ensuremath{\pi}},  
			sort=Pi,
			symbol={\ensuremath{\pi}},
			description={Kreiszahl Pi},
			user1={\ensuremath{-}},
			user2={3,1459265}
			}
		\newglossaryentry{vorDK}{
			type=indices,
			name={\ensuremath{v. DK}},
			sort=vorDK,
			symbol={\ensuremath{v. DK}},
			description={vor Drosselklappe}
			}
%Beginn des Dokuments
	\begin{document}
	% Inhaltsverzeichnis anzeigen
		\tableofcontents
		\newpage
		\section*{Symbolverzeichnis}
		\label{Symbolverzeichnis}
		\addcontentsline{toc}{section}{\nameref{Symbolverzeichnis}}
		\printglossary[type=latin_symbols, style=symbols]
		\printglossary[type=greek_symbols, style=symbols]
		\printglossary[type=constants, style=constants]
		\printglossary[type=indices, style=indices]
		\newpage
		\section*{Abkürzungsverzeichnis}
		\label{Abkuerzungsverzeichnis}
		\addcontentsline{toc}{section}{\nameref{Abkuerzungsverzeichnis}}
		\printglossary[type=\acronymtype, style=acronym]
		\newpage
		\section{Hauptteil}
			\gls{widerstand} ist der elektrische Widerstand in der Elektrotechnik. Der Druck vor der Drosselklappe \gls{druck}\textsubscript{\gls{vorDK}} 
			ist bei Saugmotoren der Umgebungsdruck. Der Querschnitt \gls{querschnitt} eines Kabels lässt sich mithilfe seines Durchmessers und der Zahl \gls{pi} 
			berechnen. Die Dichte \gls{dichte} von Luft ist geringer als die von Stahl. Eine \gls{cd} ist eine \gls{cd}. "`\gls{adac}"' ist der \gls{adac}.
	\end{document}
Dateianhänge
Minimalbeispiel_Soll.pdf
(150.76 KiB) 451-mal heruntergeladen

Bartman
Forum-Meister
Forum-Meister
Beiträge: 2456
Registriert: Do 16. Jul 2009, 21:41
Wohnort: Hessische Provinz

Re: Glossaries: Unterteiltes Glossary und falsche Darstellun

Beitrag von Bartman »

KlainerFaigling hat geschrieben:Zum einen möchte ich ein gegliedertes Symbolverzeichnis. "Symbolverzeichnis" als Section und die Unterpunkte als Subsection.
Dies schaffe ich, wenn ich selbst eine Überschrift erstelle und die Glossaries als Subsection einbinde, allerdings wird dann auch das Abkürzungsverzeichnis auf die Subsection-Ebene gestellt. Kann ich das anpassen?
\setglossarysection{section}
\section*{Abkürzungsverzeichnis}
KlainerFaigling hat geschrieben:Außerdem wird im Symbolverzeichnis irgendetwas durcheinander geworfen, wodurch die Darstellung der einzelnen Zeilen des Longtable drunter und drüber gehen. Warum?
Die folgende Änderung ist ungetestet, aber könnte Dich dem gewünschten Ergebnis näher bringen.
\newglossarystyle{symbols}{
   \setglossarystyle{long3col}
   \renewenvironment{theglossary}
Der Befehl
\glossaryentryfield
funktioniert zwar weiterhin, scheint aber veraltet zu sein. Stattdessen wird nun
\glossentry
verwendet.

KlainerFaigling
Forum-Newbie
Forum-Newbie
Beiträge: 5
Registriert: Mo 10. Okt 2016, 22:49

Re: Glossaries: Unterteiltes Glossary und falsche Darstellun

Beitrag von KlainerFaigling »

Danke Bartman,

der erste Teil hat mir sehr geholfen:
Bartman hat geschrieben:
KlainerFaigling hat geschrieben:Zum einen möchte ich ein gegliedertes Symbolverzeichnis. "Symbolverzeichnis" als Section und die Unterpunkte als Subsection.
Dies schaffe ich, wenn ich selbst eine Überschrift erstelle und die Glossaries als Subsection einbinde, allerdings wird dann auch das Abkürzungsverzeichnis auf die Subsection-Ebene gestellt. Kann ich das anpassen?
\setglossarysection{section}
\section*{Abkürzungsverzeichnis}
Ich habe es allerdings leicht abgewandelt zu:
\setglossarysection{section, toc}
Und
\section*{Abkürzungsverzeichnis}
weggelassen.

Der zweite Teil hilft mir nicht weiter.
Bartman hat geschrieben:
KlainerFaigling hat geschrieben:Außerdem wird im Symbolverzeichnis irgendetwas durcheinander geworfen, wodurch die Darstellung der einzelnen Zeilen des Longtable drunter und drüber gehen. Warum?
Die folgende Änderung ist ungetestet, aber könnte Dich dem gewünschten Ergebnis näher bringen.
\newglossarystyle{symbols}{
   \setglossarystyle{long3col}
   \renewenvironment{theglossary}
Der Befehl
\glossaryentryfield
funktioniert zwar weiterhin, scheint aber veraltet zu sein. Stattdessen wird nun
\glossentry
verwendet.
long3col
bewirkt zwar, dass die Zeilenanordnung passt, allerdings wird die Spaltenanordnung vollkommen durcheinander geworfen.
Der Befehl
\glossentry
benötigt andere Argumente, richtig?

Bartman
Forum-Meister
Forum-Meister
Beiträge: 2456
Registriert: Do 16. Jul 2009, 21:41
Wohnort: Hessische Provinz

Beitrag von Bartman »

Mein Änderungsvorschlag zu Deinem Beispiel:
\documentclass[fontsize=12pt, ngerman]{scrartcl}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{babel}
\usepackage{siunitx}
\usepackage[autostyle]{csquotes}
\usepackage[hidelinks]{hyperref}
      
\sisetup{
	locale=DE,
	per-mode=fraction
}
      
%Glossary und Abkürzungsverzeichnis
\usepackage[toc, nonumberlist, acronym, section=subsection]{glossaries}% <- geändert
%Eigenes Symbolverzeichnisse erstellen
\newglossary*{latin_symbols}{Lateinische Symbole}
\newglossary*{greek_symbols}{Griechische Symbole}
\newglossary*{constants}{Konstanten}
\newglossary*{indices}{Indizes}
         
\glsaddkey
	{unit}
	{\glsentrytext{\glslabel}}
	{\glsentryunit}
	{\GLsentryunit}
	{\glsunit}
	{\Glsunit}
	{\GLSunit}
      
\glsaddkey
	{value}
	{\glsentrytext{\glslabel}}
	{\glsentryvalue}
	{\GLsentryvalue}
	{\glsvalue}
	{\Glsvalue}
	{\GLSvalue}
      
\glssetnoexpandfield{unit}
         
%Ein neuer Verzeichnisstil für Abkürzungen
\newglossarystyle{acronym}{ 
	\setglossarystyle{long}
	\renewenvironment{theglossary}  
		{\begin{longtable}{
			@{} p{0.2\textwidth} 
			@{} p{0.8\textwidth} 
			@{} l @{}}
		}  
		{\end{longtable}}
	% Kopf der Tabelle
	\renewcommand*{\glossaryheader}{
		\bfseries Abkürzung
		& \bfseries Bedeutung
		\\[3mm]
		\endhead
	}
	\renewcommand*{\glossentry}[2]{
		\glstarget{##1}{\glossentryname{##1}} %Abkürzung
		& \glossentrydesc{##1}   %Beschreibung
		\\
	}
}
%Ein neuer Verzeichnisstil für Symbole, der auch die Einheit mit ausgibt
\newglossarystyle{symbols}{
	\setglossarystyle{long3col}
	\renewenvironment{theglossary}
		{\begin{longtable}{
			@{} p{0.2\textwidth} 
			@{} p{0.2\textwidth} 
			@{} p{0.6\textwidth} 
			@{} l @{}}}
		{\end{longtable}}
	% Kopf der Tabelle
	\renewcommand*{\glossaryheader}{			  
		\bfseries Symbol
		& \bfseries Einheit 
		& \bfseries Bedeutung
		\\[3mm]
		\endhead
	}
	\renewcommand*{\glossentry}[2]{
		\glstarget{##1}{\glossentryname{##1}}
		& $\left[\glsunit{##1}\right]$% <- geändert
		& \glossentrydesc{##1}
		\\
	}
}
%Ein neuer Verzeichnisstil für Konstanten, der auch die Einheit und einen Wert mit ausgibt
\newglossarystyle{constants}{
	\renewenvironment{theglossary}
		{\begin{longtable}{
			@{} p{0.15\textwidth} 
			@{} p{0.15\textwidth} 
			@{} p{0.15\textwidth} 
			@{} p{0.55\textwidth} 
			@{} l@{}}
		}%  
		{\end{longtable}}
	% Kopf der Tabelle
	\renewcommand*{\glossaryheader}{  
		\bfseries Symbol
		& \bfseries Einheit
		& \bfseries Wert
		& \bfseries Bedeutung
		\\[3mm]
		\endhead
	}
	\renewcommand*{\glossentry}[2]{  
		\glstarget{##1}{\glossentryname{##1}} %entry name
		& $\left[\glsunit{##1}\right]$% <- geändert
		& \glsvalue{##1}%Wert
		& \glossentrydesc{##1} %Description
		\\
	}
}
%Ein neuer Verzeichnisstil für Indizes, wie ein Abkürzungsverzeichnis, nur statt Abkürzung Index
\newglossarystyle{indices}{  
	\setglossarystyle{acronym}
	% Kopf der Tabelle
	\renewcommand*{\glossaryheader}{  
		\bfseries Index
		& \bfseries Bedeutung
		& \bfseries
		\\[3mm]
		\endhead
	}
}
\renewcommand*{\glspostdescription}{}
\makeglossaries
%\deftranslation[to=German]{Acronyms}{Abkürzungsverzeichnis}

%Glossaryeinträge
\newacronym{cd}{CD}{Compact Disk}
\newacronym{adac}{ADAC}{Allgemeiner Deutscher Automobil Club}

\newglossaryentry{widerstand}{
	type=latin_symbols,
	name={\ensuremath{R}},
	sort=Widerstand,
	description={Elektrischer Widerstand},
	unit={\si{\Omega}}
}
\newglossaryentry{dichte}{
	type=greek_symbols,
	name={\ensuremath{\rho}},
	sort=Dichte,
	description={Dichte},
	unit={\si{\kg\per\m\cubed}}
}
\newglossaryentry{druck}{
	type=latin_symbols,
	name={\ensuremath{p}},  
	sort=Druck,
	description={Druck},
	unit={\si{\N\per\m\squared}}
}
\newglossaryentry{querschnitt}{
	type=latin_symbols,
	name={\ensuremath{A}},
	sort=Querschnittsfläche,
	description={Querschnittsfläche},
	unit={\si{\square\m}}
}
\newglossaryentry{pi}{
	type=constants,
	name={\ensuremath{\pi}},  
	sort=Pi,
	description={Kreiszahl Pi},
	unit={\ensuremath{-}},
	value={3,1459265}
}
\newglossaryentry{vorDK}{
	type=indices,
	name={\ensuremath{v. DK}},
	sort=vorDK,
	description={vor Drosselklappe}
}

\begin{document}
\tableofcontents
\newpage
%\section*{Symbolverzeichnis}
\addsec{Symbolverzeichnis}
\label{Symbolverzeichnis}
%\addcontentsline{toc}{section}{\nameref{Symbolverzeichnis}}
\printglossary[type=latin_symbols, style=symbols]
\printglossary[type=greek_symbols, style=symbols]
\printglossary[type=constants, style=constants]
\printglossary[type=indices, style=indices]
\newpage
%\section*{Abkürzungsverzeichnis}
\setglossarysection{section}
%\addsec{Abkürzungsverzeichnis}
%\label{Abkuerzungsverzeichnis}
%\addcontentsline{toc}{section}{\nameref{Abkuerzungsverzeichnis}}
\printglossary[type=\acronymtype, style=acronym, title=Abkürzungsverzeichnis]
\newpage
\section{Hauptteil}
\gls{widerstand} ist der elektrische Widerstand in der Elektrotechnik. Der Druck vor der Drosselklappe \gls{druck}\textsubscript{\gls{vorDK}} ist bei Saugmotoren der Umgebungsdruck. Der Querschnitt \gls{querschnitt} eines Kabels lässt sich mithilfe seines Durchmessers und der Zahl \gls{pi} berechnen. Die Dichte \gls{dichte} von Luft ist geringer als die von Stahl. Eine \gls{cd} ist eine \gls{cd}. \enquote{\gls{adac}} ist der \gls{adac}.
\end{document}
Zuletzt geändert von Bartman am Mo 17. Okt 2016, 06:59, insgesamt 4-mal geändert.

KlainerFaigling
Forum-Newbie
Forum-Newbie
Beiträge: 5
Registriert: Mo 10. Okt 2016, 22:49

Beitrag von KlainerFaigling »

Wow, perfekt, dankeschön!
Ein paar wenige Kleinigkeiten angepasst, et voilá =)

KlainerFaigling
Forum-Newbie
Forum-Newbie
Beiträge: 5
Registriert: Mo 10. Okt 2016, 22:49

Beitrag von KlainerFaigling »

Ich habe das ganze nun in mein Projekt eingebunden. Für Kopf und Fußzeilen verwende ich:
\usepackage[headsepline, footsepline, plainfootsepline, automark]{scrlayer-scrpage}
Das funktioniert auch soweit, so gut, allerdings wird im Kopf statt "Symbolverzeichnis" "Indizes", also das letzte Unterverzeichnis, angezeigt.
Ich komme leider nicht darauf, wie ich das anpasse.

Bartman
Forum-Meister
Forum-Meister
Beiträge: 2456
Registriert: Do 16. Jul 2009, 21:41
Wohnort: Hessische Provinz

Beitrag von Bartman »

Ich möchte auf eine Anpassung meines Beispiels aufmerksam machen:

Den aus Deinem Beispiel übernommenen Eintrag
[\glsentryuseri{##1}]
in den Glossarstilen symbols und constants habe ich durch
$\left[\glsunit{##1}\right]$
ersetzt, damit die Größe der eckigen Klammern auch zu Einheiten passt, die mehr senkrechten Platz benötigen.
KlainerFaigling hat geschrieben:Das funktioniert auch soweit, so gut, allerdings wird im Kopf statt "Symbolverzeichnis" "Indizes", also das letzte Unterverzeichnis, angezeigt.
Ich komme leider nicht darauf, wie ich das anpasse.
Das weiß ich leider auch nicht.

Bartman
Forum-Meister
Forum-Meister
Beiträge: 2456
Registriert: Do 16. Jul 2009, 21:41
Wohnort: Hessische Provinz

Beitrag von Bartman »

KlainerFaigling hat geschrieben:Das funktioniert auch soweit, so gut, allerdings wird im Kopf statt "Symbolverzeichnis" "Indizes", also das letzte Unterverzeichnis, angezeigt.
Ich komme leider nicht darauf, wie ich das anpasse.
Probiere es mit diesen Änderungen:
\usepackage[nonumberlist, acronym, section=subsection]{glossaries}
\renewcommand*{\glsglossarymark}[1]{}
\setglossarysection{section}
\renewcommand{\glsglossarymark}[1]{\markright{#1}}
Die Reihenfolge der Befehle scheint bei der zweiten Ergänzung nicht wichtig zu sein.
Zuletzt geändert von Bartman am Di 18. Okt 2016, 01:03, insgesamt 1-mal geändert.

KlainerFaigling
Forum-Newbie
Forum-Newbie
Beiträge: 5
Registriert: Mo 10. Okt 2016, 22:49

Beitrag von KlainerFaigling »

I see what u did there :D

Perfekt! Hatte auch sowas im Kopf, aber nicht den entsprechenden Befehl gefunden bzw. die Suche aufgegeben, weil ich nicht dachte, dass er existiert.

Vielen Dank! =)

Bartman
Forum-Meister
Forum-Meister
Beiträge: 2456
Registriert: Do 16. Jul 2009, 21:41
Wohnort: Hessische Provinz

Beitrag von Bartman »

Ich habe den ersten Quelltextausschnitt meines letzten Beitrags berichtigt. Der Befehl soll nach dem Laden des Pakets glossaries erscheinen.

Den ersten Befehl fand ich in einem anderen Thread mit dem Titel "Unterkapitel & Kopfzeile".

Antworten