PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Verzweifele bei glossaries-layout..



wasserfrauchen
29-07-2010, 08:36
Hallo zusammen,

ich muss ein Akronymverzeichnis erstellen, welches dasselbe Format haben soll, wie mein mit makeindex erstelltes Stichwortverzeichnis, und zwar wie folgt:

A%(mittig über dem Text)

Abb.....Abbildung
Abk.....Akkürzung

und das Ganze soll in 2 Spalten passieren; also daneben dasselbe nochmal.

Ich habe nach viel Lektüre festgestellt, dass glossaries wohl das mächtigste package ist; leider komme ich mit den Anpassungen überhaupt nicht klar.
Schon allein an den 2 Spalten scheitere ich komplett; hatte schon versucht, vor dem
\printglossary[title=Akronymverzeichnis]
ein
\twocolumn
einzufügen, das bringt aber leider nichts. Und die Spaltenoptionen, die in die im longtabel-style in der Dokumentation des glossaries package genannt werden, beziehen sich nur auf die Teile des Eintrages, also bspw. die Abkürzung, das Ausformulierte, oder die Seitenzahl.

Kann jemand helfen - ich bin echt verzweifelt..

DANKE!

Minimalbeispiel:

\documentclass[%jede Menge Pakete
]{scrreprt}
\usepackage{makeidx}
\usepackage[nonumberlist,acronym]{glossaries}

\makeglossary
\makeindex

\newglossaryentry{Abk}{name={Abk}, description={Abkürzung}}

\begin{document}
Das ist ein Text mit Abk.\gls{Abk}

\printglossary[title=Akronymverzeichnis%style=????
]
\end{document}

bobmalaria
29-07-2010, 08:47
hi,

ungetestet

style=indexgroup

gruss

u_fischer
29-07-2010, 09:22
longtable funktioniert nicht mit \twocolumn, d.h. du solltest alle Stile mit "long" ignorieren. supertable kann funktionieren, aber Stile, die auf Listen basieren, müssten eigentlich am besten gehen.

wasserfrauchen
29-07-2010, 09:22
@bobmalaria
Spannend. 2-Spaltig ist es nicht, sondern linksbündig (oder könnte es daran liegen,d ass einige Einträge sehr lang sind und Latex keinen automatischen Zeilenumbruch macht??) Und die Buchstaben stehen oben drüber, aber nicht mittig; ausserdem sind die Abkürzungen fett (was die Stichworte im Inhaltsverzeichnis nicht sind); ausserdem fehlen noch die Punkte zwischen Abkürzungen und ausgeschriebenen Begriffen :-(

War aber immerhin ein kleiner Fortschritt; kann ich den Rest irgendwie übergeben als Argumente?

bobmalaria
29-07-2010, 09:51
hi,

du hast immer noch die möglichkeit deinen eigenen stil zu erstellen. alle tests kann ich nicht machen weil ich ja deine einträge nicht habe. die müsstest du dann mal noch hier posten wenn nachfolgendes nicht funktioniert


\documentclass{scrreprt}
\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}

\usepackage[nonumberlist,acronym]{glossaries}
\usepackage{multicol}

\makeglossary



\newglossaryentry{Abk}{name={Abk}, description={Abkürzung}}

\begin{document}
Das ist ein Text mit Abk.\gls{Abk}

\makeatletter
\newglossarystyle{myindex}{%
\renewenvironment{theglossary}%
{\setlength{\parindent}{0pt}%
\setlength{\parskip}{0pt plus 0.3pt}%
\let\item\@idxitem}%
{}%
\renewcommand*{\glossaryheader}{}%
\renewcommand*{\glsgroupheading}[1]{}%
\renewcommand*{\glossaryentryfield}[5]{%
\item\glstarget{##1}{##2}%
\ifx\relax##4\relax
\else
\space(##4)%
\fi
\dotfill ##3\glspostdescription \space ##5}%
\renewcommand*{\glossarysubentryfield}[6]{%
\ifcase##1\relax
% level 0
\item
\or
% level 1
\subitem
\else
% all other levels
\subsubitem
\fi
\glstarget{##2}{##3}%
\ifx\relax##5\relax
\else
\space(##5)%
\fi
\space##4\glspostdescription\space ##6}%
\renewcommand*{\glsgroupskip}{\indexspace}
\renewcommand*{\glsgroupheading}[1]{%
\item\textbf{\glsgetgrouptitle{##1}}\indexspace}%
}
\makeatother

\twocolumn
\printglossary[title=Akronymverzeichnis,style=myindex]

\end{document}

wasserfrauchen
29-07-2010, 10:05
@bobmalaria

FUNKTIONIERT PERFEKT!!!
VIELEN VIELEN DANK!!

DU GLAUBST GAR NICHT; WIE VIELE STUNDEN ICH DARAN RUMPROBIERT HABE!!

:-)))))

wasserfrauchen
29-07-2010, 11:22
Hmm... bin immernoch total begeistert - 2 kleine Problemchen gibts aber noch; vielleicht hast Du eine schnelle Lösung parat?
Die Buchstaben in fett stehen nicht mittig über den dazugehörigen Einträgen, sondern linksbündig und jede Erklärung einer Abkürzung endet mit einem Punkt. den ich gerne noch loswerden würde.

ElEsido
29-07-2010, 13:31
Den Punkt kriegst Du so weg:


\renewcommand*{\glspostdescription}{}% den Punkt am Ende der Beschreibung im Verzeichnis weglassen

mechanicus
29-07-2010, 13:38
Hi,


\documentclass{scrreprt}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}

\usepackage[nonumberlist,acronym]{glossaries}
\usepackage{multicol}

\makeglossary



\newglossaryentry{Abk}{name={Abk}, description={Abkürzung}}

\begin{document}
Das ist ein Text mit Abk.\gls{Abk}

\makeatletter
\newglossarystyle{myindex}{%
\renewenvironment{theglossary}%
{\setlength{\parindent}{0pt}%
\setlength{\parskip}{0pt plus 0.3pt}%
\let\item\@idxitem}%
{}%
\renewcommand*{\glspostdescription}{}
\renewcommand*{\glossaryheader}{}%
\renewcommand*{\glsgroupheading}[1]{}%
\renewcommand*{\glossaryentryfield}[5]{%
\item\glstarget{##1}{##2}%
\ifx\relax##4\relax
\else
\space(##4)%
\fi
\dotfill ##3\glspostdescription \space ##5}%
\renewcommand*{\glossarysubentryfield}[6]{%
\ifcase##1\relax
% level 0
\item
\or
% level 1
\subitem
\else
% all other levels
\subsubitem
\fi
\glstarget{##2}{##3}%
\ifx\relax##5\relax
\else
\space(##5)%
\fi
\space##4\glspostdescription\space ##6}%
\renewcommand*{\glsgroupskip}{\indexspace}
\renewcommand*{\glsgroupheading}[1]{%
\item\hfil\textbf{\glsgetgrouptitle{##1}}\indexspa ce}%
}
\makeatother

\twocolumn
\printglossary[title=Akronymverzeichnis,style=myindex]

\end{document}

Gruß
Marco

wasserfrauchen
29-07-2010, 15:34
Funktioniert super. Vielen Dank! :) :) :) :) :)

wasserfrauchen
31-08-2010, 17:06
Ich hab noch eine Frage zu dem selbst-definierten glossaries-style:

Wie kann ich erreichen, dass - sollte es bei der Description einen Zeilenumbruch geben - die 2. Zeile unter der ersten anfängt? Bei mit ist das immer nach links verschoben.

Code steht ja noch oben, hier ein Beispiel zur Verdeutlichung des Problems:
EDGE . . . . . Enhanced Data Rates for GSM
~~~~~~~Evolution %die ~ sind nicht da; ich habs hier nur genutzt um die Einrückung zu erreichen, damit ihr wisst, was das Problem ist

Es wäre schön, wenn "Evolution" unter "Enhanced" anfangen würde.

Hat jemand einen heißen Tipp, wie ich das erreichen kann? Die glossaries-Dokumentation hat mir leider nicht weitergeholfen.

Vielen Dank.

mechanicus
31-08-2010, 18:18
Code steht ja noch oben, hier ein Beispiel zur Verdeutlichung des Problems:
EDGE . . . . . Enhanced Data Rates for GSM
~~~~~~~Evolution %die ~ sind nicht da; ich habs hier nur genutzt um die Einrückung zu erreichen, damit ihr wisst, was das Problem ist

Das Beispiel oben zeigt aber nicht dein Problem. Der Sinn und Zweck ist schließlich, dass wir den Code kopieren, kompilieren und dein Problem sehen.

\documentclass{scrreprt}
\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}
\usepackage{ragged2e}
\usepackage[nonumberlist,acronym]{glossaries}
%\usepackage{multicol}

\makeglossary

\usepackage{showframe}

\newglossaryentry{Abk}{name={Abk}, description={Abkürzung die sehr lang ist und vermutlich über mehrere Zeilen geht}}
\newglossaryentry{B}{name={B}, description={Abkürzung die sehr lang ist und vermutlich über mehrere Zeilen geht}}
\newglossaryentry{C}{name={C}, description={Abkürzung die sehr lang ist und vermutlich über mehrere Zeilen geht}}
\newglossaryentry{D}{name={D}, description={Abkürzung die sehr lang ist und vermutlich über mehrere Zeilen geht}}
\newglossaryentry{E}{name={E}, description={Abkürzung die sehr lang ist und vermutlich über mehrere Zeilen geht}}
\newglossaryentry{F}{name={F}, description={Abkürzung die sehr lang ist und vermutlich über mehrere Zeilen geht}}
\newglossaryentry{G}{name={G}, description={Abkürzung die sehr lang ist und vermutlich über mehrere Zeilen geht}}
\newglossaryentry{H}{name={H}, description={Abkürzung die sehr lang ist und vermutlich über mehrere Zeilen geht}}
\newglossaryentry{I}{name={I}, description={Abkürzung die sehr lang ist und vermutlich über mehrere Zeilen geht}}
\newglossaryentry{J}{name={J}, description={Abkürzung die sehr lang ist und vermutlich über mehrere Zeilen geht}}
\newglossaryentry{K}{name={K}, description={Abkürzung die sehr lang ist und vermutlich über mehrere Zeilen geht}}
\newglossaryentry{L}{name={L}, description={Abkürzung die sehr lang ist und vermutlich über mehrere Zeilen geht}}
\newglossaryentry{M}{name={M}, description={Abkürzung die sehr lang ist und vermutlich über mehrere Zeilen geht}}
\newglossaryentry{N}{name={N}, description={Abkürzung die sehr lang ist und vermutlich über mehrere Zeilen geht}}

\glsaddall
\begin{document}
Das ist ein Text mit Abk.\gls{Abk}

\makeatletter
\newglossarystyle{myindex}{%
\renewenvironment{theglossary}%
{\setlength{\parindent}{0pt}%
\setlength{\parskip}{0pt plus 0.3pt}%
\let\item\@idxitem}%
{}%
\renewcommand*{\glspostdescription}{}
\renewcommand*{\glossaryheader}{}%
\renewcommand*{\glsgroupheading}[1]{}%
\renewcommand*{\glossaryentryfield}[5]{%
\item\glstarget{##1}{##2}%
\ifx\relax##4\relax
\else
\space(##4)%
\fi
\dotfill\parbox[t]{0.7\linewidth}{ ##3}\glspostdescription \space ##5}%
\renewcommand*{\glossarysubentryfield}[6]{%
\ifcase##1\relax
% level 0
\item
\or
% level 1
\subitem
\else
% all other levels
\subsubitem
\fi
\glstarget{##2}{##3}%
\ifx\relax##5\relax
\else
\space(##5)%
\fi
\space##4\glspostdescription\space ##6}%
\renewcommand*{\glsgroupskip}{\indexspace}
\renewcommand*{\glsgroupheading}[1]{%
\item\hfil\textbf{\glsgetgrouptitle{##1}}\indexspa ce}%
}
\makeatother

\twocolumn
\printglossary[title=Akronymverzeichnis,style=myindex]

\end{document}

Gruß
Marco

wasserfrauchen
01-09-2010, 10:04
Dankeschön :-)

Spannender Weise ändert sich so auch der Abstand zwischen 2 Einträgen. Resultat ist, dass wenn ein Eintrag jetzt über 2 Zeilen geht, optisch in den darunter liegenden rutscht. Gibt es eine Möglichkeit, den Zeilenabstand zwischen 2 Einträgen einer Gruppe zu ändern?

Diese Lösungen
http://www.mrunix.de/forums/archive/index.php/t-67334.html
http://mrunix.de/forums/showthread.php?t=60540

bringen leider nichts.

mechanicus
02-09-2010, 19:07
Hi,

ich habe dich ehrlich gesagt nicht verstanden. Bevor ich hier irgendwelche Ratevorgänge starte, erstelle bitte selbst ein Minimalbeispiel, was dein Problem zeigt.