PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : glossaries kleinerer Zeilenabstand



chris1234567
04-02-2010, 13:32
Hallo, ich möchte den Zeilenabstand zwischen den Einträgen der Glossaries verkleinern; auf normalen einfachen Zeilenabstand oder 1.5 fachen Abstand. Die Lösung von dem Thread http://mrunix.de/forums/showthread.php?t=60540 funktioniert in diesem Fall leider nicht. Die Frage ist eine Erweiterung von http://mrunix.de/forums/showthread.php?t=67329

Möchte ich den Abstand mit

%\renewenvironment{theglossary}%
%{\begin{longtable}{llp{\glsdescwidth}}}%
%{\end{longtable}}%
ändern bekomme ich eine Fehlermeldung.

Ein Minimalbeispiel:

\documentclass[a4paper,bibtotoc,oneside,fleqn]{scrbook}
\usepackage[ansinew]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[english]{babel}
\usepackage[acronym, toc] {glossaries}
\usepackage{enumitem}


%definition für Inhlatsverzeichnis

\newglossarystyle{compact}{%
\glossarystyle{list}%,
% Hier liegt irgendwo der Fehler, eventuell braucht es eine andere Definition
%\renewenvironment{theglossary}%
%{\begin{longtable}{llp{\glsdescwidth}}}%
%{\end{longtable}}%
\setlength{\glslistdottedwidth}{.15\hsize}
\renewcommand*{\glossaryentryfield}[5]{%
\item[]\makebox[\glslistdottedwidth][l]{\glstarget{##1}{##2}%
\unskip\qquad\hbox to 1.375mm{\hss}\hfill~\strut}%
\parbox[t]{\textwidth-\glslistdottedwidth-\labelsep}{##3}}%
\renewcommand*{\glossarysubentryfield}[6]{%
\item[]\makebox[\glslistdottedwidth][l]{\glstarget{##2}{##3}%
\unskip\qquad\hbox to 1.375mm{\hss}\hfill~\\strut}##4}%

}


\newglossary[slg]{symbolslist}{syi}{syg}{Symbolverzeichnis}
\newglossary[flg]{formulas}{fyi}{fyg}{Formelverzeichnis}

\newglossaryentry{glos:AW}{name=Answer, description={This is an answer}}
\newglossaryentry{symb:Pi}{name=$\pi$,description= {This is Pi},sort=symbolpi, type=symbolslist}
\newacronym[description={Blabla}]{CD}{CD}{Compact Disc}

\makeglossaries

\begin{document}

\gls{glos:AW}\\ \gls{symb:Pi}\\ \gls{CD}\\

\printglossary[type=\acronymtype,title=Abbreviations, style=compact]
\printglossary[type=symbolslist,title=Symbols, style=compact]
\printglossary[style=altlist,title=Glossary, style=compact]

\end{document}

Ich bin für jeden Hinweis dankbar!

BG C

mechanicus
04-02-2010, 13:42
Hi,

Auszug:

\usepackage{setspace}

%definition für Inhlatsverzeichnis

\newglossarystyle{compact}{%
\singlespacing
\glossarystyle{list}%,
\setlength{\glslistdottedwidth}{.15\hsize}
\renewcommand*{\glossaryentryfield}[5]{%
\item[]\makebox[\glslistdottedwidth][l]{\glstarget{##1}{##2}%
\unskip\qquad\hbox to 1.375mm{\hss}\hfill~\strut}%
\parbox[t]{\textwidth-\glslistdottedwidth-\labelsep}{##3}}%
\renewcommand*{\glossarysubentryfield}[6]{%
\item[]\makebox[\glslistdottedwidth][l]{\glstarget{##2}{##3}%
\unskip\qquad\hbox to 1.375mm{\hss}\hfill~\\strut}##4}%
}

oder meinst du den Abstand zwischen den einzelnen Einträgen? Dann schaue dir mal an, wie man die Abstände in einer Liste verkleinert. (itemize beispielsweise)

Gruß
Marco

u_fischer
04-02-2010, 13:55
\glossarystyle{list} wird ja wohl auf einer Liste (description) beruhen, und die \item-Befehle sind auch Listen-Befehle. Da ist es nicht so sinnvoll plötzlich eine longtable drumherum zu packen. Du suchst wohl eher so was:


\newglossarystyle{compact}{%
\glossarystyle{list}%,
\renewenvironment{theglossary}%
{\begin{description}[nolistsep]}{\end{description}}%
}

chris1234567
04-02-2010, 19:04
Danke für die Antworten! Ich habe jetzt 3 Möglichkeiten ausprobiert aber keine davon funktioniert.
(Ja, ich meine den Abstand zwischen den einzelnen Einträgen)

1. Möglichkeit:


\newglossarystyle{compact}{%
\glossarystyle{list}%,
%Versuch mittels Environment
\renewenvironment{theglossary}%
{\begin{description}[nolistsep]}{\end{description}}%
\setlength{\glslistdottedwidth}{.15\hsize}
\renewcommand*{\glossaryentryfield}[5]{%
\item[]\makebox[\glslistdottedwidth][l]{\glstarget{##1}{##2}%
\unskip\qquad\hbox to 1.375mm{\hss}\hfill~\strut}%
\parbox[t]{\textwidth-\glslistdottedwidth-\labelsep}{##3}}%
\renewcommand*{\glossarysubentryfield}[6]{%
\item[]\makebox[\glslistdottedwidth][l]{\glstarget{##2}{##3}%
\unskip\qquad\hbox to 1.375mm{\hss}\hfill~\\strut}##4}%
}

2. Möglichkeit mittels Gruppierung:


\begingroup
\renewcommand*\arraystretch{0.5}
\printglossary[type=\acronymtype,title=Abbreviations, style=compact]
\printglossary[type=symbolslist,title=Symbols, style=compact]
\printglossary[style=altlist,title=Glossary, style=compact]
\endgroup

3. Möglichkeit mittels Itemize:


\newglossarystyle{compact}{%
\glossarystyle{list}%,
%Versuch mittels Itemize
\renewenvironment{theglossary}%
{\begin{itemize}[nolistsep]}{\end{itemize}}%
\setlength{\glslistdottedwidth}{.15\hsize}
\renewcommand*{\glossaryentryfield}[5]{%
\item[]\makebox[\glslistdottedwidth][l]{\glstarget{##1}{##2}%
\unskip\qquad\hbox to 1.375mm{\hss}\hfill~\strut}%
\parbox[t]{\textwidth-\glslistdottedwidth-\labelsep}{##3}}%
\renewcommand*{\glossarysubentryfield}[6]{%
\item[]\makebox[\glslistdottedwidth][l]{\glstarget{##2}{##3}%
\unskip\qquad\hbox to 1.375mm{\hss}\hfill~\\strut}##4}%
}

Wisst Ihr was ich da falsch mache? Ich habe jetzt keinen Lösungsansatz mehr.

BG C

u_fischer
05-02-2010, 08:33
Wenn du uns verraten würdest, was "keine funktioniert" bedeutet... Ich habe deinen Code unter 1. in das Minimalbeispiel eingebaut und keine Probleme.

chris1234567
05-02-2010, 10:00
Ok, also ich habe es so probiert und bekomme Fehlermeldungen. Irgendwas stimme mit dem setentrycounter nicht.


\documentclass[a4paper,bibtotoc,oneside,fleqn]{scrbook}
\usepackage[ansinew]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[english]{babel}
\usepackage[acronym, toc] {glossaries}
\usepackage{setspace}


\newglossarystyle{compact}{%
\glossarystyle{list}%,
Versuch mittels Environment
\renewenvironment{theglossary}%
{\begin{description}[nolistsep]}{\end{description}}%\setlength{\glslistdottedwidt h}{.15\hsize}
\renewcommand*{\glossaryentryfield}[5]{%
\item[]\makebox[\glslistdottedwidth][l]{\glstarget{##1}{##2}%
\unskip\qquad\hbox to 1.375mm{\hss}\hfill~\strut}%
\parbox[t]{\textwidth-\glslistdottedwidth-\labelsep}{##3}}%
\renewcommand*{\glossarysubentryfield}[6]{%
\item[]\makebox[\glslistdottedwidth][l]{\glstarget{##2}{##3}%
\unskip\qquad\hbox to 1.375mm{\hss}\hfill~\\strut}##4}%
}


\newglossary[slg]{symbolslist}{syi}{syg}{Symbolverzeichnis}
\newglossary[flg]{formulas}{fyi}{fyg}{Formelverzeichnis}

\newglossaryentry{glos:AW}{name=Answer, description={This is an answer}}
\newglossaryentry{glos:A2}{name=Answer2, description={This is another answer}}
\newglossaryentry{symb:Pi}{name=$\pi$,description= {This is Pi},sort=symbolpi, type=symbolslist}
\newglossaryentry{symb:Phi}{name=$\phi$,descriptio n={This is Phi},sort=symbolphi, type=symbolslist}
\newacronym[description={A compact disc is...}]{CD}{CD}{Compact Disc}
\newacronym[description={A DVD is...}]{DVD}{DVD}{DVD}




\makeglossaries

\begin{document}

\gls{glos:AW}\\ \gls{symb:Pi}\\ \gls{CD}\\ \gls{glos:A2} \\ \gls{symb:Phi} \\ \gls{DVD}

\printglossary[type=\acronymtype,title=Abbreviations, style=compact]
\printglossary[type=symbolslist,title=Symbols, style=compact]
\printglossary[style=altlist,title=Glossary, style=compact]


\end{document}

BG C

u_fischer
05-02-2010, 10:19
Naja, enumitem solltest du schon laden, wenn du [nolistsep] verwenden willst.

Der Code \renewcommand*{\glossaryentryfield}[5]{ ... funktioniert übrigens nicht richtig. Warum hast du den eingefügt?

lockstep
05-02-2010, 11:07
Naja, enumitem solltest du schon laden, wenn du [nolistsep] verwenden willst.

Der zusätzliche Witz dabei ist, dass in der Präambel des ursprünglichen Beispiels \usepackage{enumitem} enthalten war. Wenn in der Folge zusätzliche Codeschnipsel gepostet werden, nimmt man als HelferIn zunächst nicht an, dass gleichzeitig in der Präambel genau eine Zeile (die entscheidende) gestrichen wurde.

lockstep

chris1234567
05-02-2010, 14:49
Das heißt die fehlerhafte Darstellung liegt an dem glossaryentry{5 . Aber was ist daran falsch. Ich verstehe diese Definitionen nicht wirklich.

BG C

2mkx
08-02-2010, 09:18
Habedere!
ich habs so versucht - dort wo die Glossareinträge erscheinen sollen, einfach das spacing verändert:

\begin{spacing}{1} % Inhaltsverzeichnis etc. nicht mit erhöhtem Zeilenabstand setzen
\cleardoublepage % Seitenzähler zurücksetzen
\pagenumbering{Roman} % mit römischen Zahlen durchnummerieren
\include{chapters/vorspann} % Erklärung, Danksagung
\tableofcontents% Inhaltsverzeichnis einfügen
\renewcommand{\glossaryname}{Glossar}% Deutscher Titel ;)
\printglossary[style = long3col]% Glossarverzeichnis einfügen
\setlength{\glspagelistwidth}{0cm} % Für Symbolverzeichnis keine Seitenzahlen,...
\setlength{\glsdescwidth}{0.75\hsize} % ...dafür breitere Beschreibung
\printglossary[nonumberlist, type=symbols, style=altsuper4col]% Symbolverzeichnis einfügen
\printglossary[nonumberlist, type=acronyms, style=long3col]% Abkürzungsverzeichnis einfügen
\end{spacing}


Des wars schon - nimm Dir einfach was du brauchst (\begin{spacing}{1} ... \end{spacing}