Anzeige:
Ergebnis 1 bis 6 von 6

Thema: Symbolverzeichnis {glossaries} multicolumn und Zeilenabstandsproblem

  1. #1
    Sebi
    Gast

    Symbolverzeichnis {glossaries} multicolumn und Zeilenabstandsproblem

    Hallo,

    ich habe beim Erstellen meines Symbolverzeichnisses zwei Probleme.

    1. Durch die Unterteilung in griechische und lateinische Buchstaben werden mir die zweiten Spalten für die description zu weit nach rechts geschoben. Aus den Zeilen in denen die fett gedruckten Einträge stehen würde ich deshalb gerne multicolumns machen. Nur wie?

    2. Ich möchte den zeilenabstand zwischen zwei Einträgen konstant halten, auch wenn in einer description ein Umbruch steht.

    Anbei ein Minimalbeispiel mit den beiden Problemen und die PDF.

    Vielen Dank fürs lesen!


    Code:
    \documentclass[pdftex,11pt,a4paper]{scrreprt} %A4 Format, Report
    \usepackage[ngerman]{babel,translator} %internationale Sprachunterstützung, Übersetzung ins Deutsche glossaries Paket
    \usepackage[latin1]{inputenc} %Zeichenkodierung für Windows
    \usepackage[T1]{fontenc} %Für korrekte Trennung in Wörtern mit Umlauten, enthält Schriftarten
    \usepackage[sc]{mathpazo} %Schriftart
    \usepackage{booktabs} %horizontale Linien in Tabellen
    \usepackage{longtable}
    \usepackage[textstyle]{SIunits} %\micro für µ
    \usepackage{threeparttable} %für Tabellen mit caption, table und tablenote [\begin{threeparttable}\begin{tabular}\end{tabular}\begin{tablenotes}[option(para, online, flushleft)]\end{tablenotes}\end{threeparttable}
    \usepackage[%Paket laden für Symbolverzeichnis und Abkürzungsverzeichnis
    nonumberlist, %keine Seitenzahlen anzeigen
    numberline,   %richtet Eintrag im Inhaltsverzeichnis an chapter aus
    acronym,      %ein Abkürzungsverzeichnis erstellen
    toc]          %Einträge im Inhaltsverzeichnis
    {glossaries}
    
    %Ein Symbolverzeichnis erstellen
    \newglossary[slg]{symbolslist}{syi}{syg}{Symbolverzeichnis}
    
    %Style Symbolverzeichnis definieren
    \newglossarystyle{symbver}{ % put the glossary in a longtable environment:
    \renewenvironment{theglossary}
    {\begin{longtable}{lp{\glsdescwidth}cccp{\glspagelistwidth}}}
    {\end{longtable}}
    
    \renewcommand*{\glossaryheader}{}
    
    \renewcommand*{\glossaryentryfield}[4]{
    \glstarget{##1}\\[0.5cm]{##2}&{##3}&{##4}}% \\[0.5cm] Zeilenabstand zwischen Einträgen
    
    \renewcommand*{\glossarysubentryfield}[6]{
    \glossaryentryfield{##2}{##3}{##4}{[##5]}}
    
    \renewcommand*{\glsgroupskip}{}}
    
    %Den Punkt am Ende jeder Beschreibung deaktivieren
    \renewcommand*{\glspostdescription}{}
    
    \newglossaryentry{romanletter}{name={\textbf{Lateinische Buchstaben}},description={}} %trennt Symbolverzeichnis in lateinische und griechische Buchstaben
    \newglossaryentry{greekletter}{name={\textbf{Griechische Buchstaben}},description={}} %trennt Symbolverzeichnis in lateinische und griechische Buchstaben
    
    %Glossar-Befehle anschalten
    \makeglossaries
    
    \begin{document} %Beginn des Dokuments
    
    \newglossaryentry{symb:f}{
    name=\textit{f},
    symbol=mm,
    description={Brennweite der Fokussierlinse},
    parent=romanletter,
    sort=symbolf, type=symbolslist
    }
    \newglossaryentry{symb:rhoE}{
    name=$\rho\textsubscript{E}$,
    symbol=$\frac{\text{J}}{\text{\centi\meter\squared}}$, % oder \joule\per\centi\meter\squared
    description={Energiedichte des Laserstrahls auf dem Target},
    parent=greekletter,
    sort=symbolrhoE, type=symbolslist
    }
    \newglossaryentry{symb:theta}{
    name=$\theta$,
    symbol=\degree,
    description={\sc Bragg}-Winkel oder Glanzwinkel aus Röntgendiffraktometrie,
    parent=greekletter,
    sort=symboltheta, type=symbolslist
    }
    \newglossaryentry{symb:zeta}{
    name=$\zeta$,
    symbol=\degree,
    description={Ein Winkel},
    parent=greekletter,
    sort=symbolzeta, type=symbolslist
    }
    Das sind \gls{symb:theta}, \gls{symb:f}, \gls{symb:zeta} und \gls{symb:rhoE}!
    
    %Symbole ausgeben
    \printglossary[type=symbolslist,style=symbver,title=Symbolverzeichnis] %gibt Symbolverzeichnis aus, title= ohne Überschrift
    
    \end{document} %Ende des Dokuments

  2. #2
    Registrierter Benutzer Avatar von mechanicus
    Registriert seit
    10.07.2008
    Ort
    Hamburg
    Beiträge
    3.944
    Zitat Zitat von Sebi Beitrag anzeigen
    Aus den Zeilen in denen die fett gedruckten Einträge stehen würde ich deshalb gerne multicolumns machen. Nur wie?
    Code:
    \newglossaryentry{romanletter}{name={\textbf{\rlap{Lateinische Buchstaben}}},description={}} %trennt Symbolverzeichnis in lateinische und griechische Buchstaben
    \newglossaryentry{greekletter}{name={\textbf{\rlap{Griechische Buchstaben}}},description={}} %trennt Symbolverzeichnis in lateinische und griechische Buchstaben


    Gruß
    Marco

  3. #3
    Sebi
    Gast
    OK, funktioniert. Vielen Dank für die schnelle Hilfe.

  4. #4
    Registrierter Benutzer
    Registriert seit
    13.01.2009
    Beiträge
    14
    Hallo,

    der Beitrag hat mir sehr weitergeholfen bei der Erstellung eines Symbolverzeichnisses. Zu dem hier erwähnten Quellcode habe ich noch eine Frage. Ich möchte eine andere Anordnung der Spalten haben und zwar Symbol, Einheit und Beschreibung.

    dafür habe ich die Reihenfolge der Spalten geändert (siehe rot)
    Code:
    \documentclass[pdftex,11pt,a4paper]{scrreprt} %A4 Format, Report
    \usepackage[ngerman]{babel,translator} %internationale Sprachunterstützung, Übersetzung ins Deutsche glossaries Paket
    \usepackage[latin1]{inputenc} %Zeichenkodierung für Windows
    \usepackage[T1]{fontenc} %Für korrekte Trennung in Wörtern mit Umlauten, enthält Schriftarten
    \usepackage[sc]{mathpazo} %Schriftart
    \usepackage{booktabs} %horizontale Linien in Tabellen
    \usepackage{longtable}
    \usepackage[textstyle]{SIunits} %\micro für µ
    \usepackage{threeparttable} %für Tabellen mit caption, table und tablenote [\begin{threeparttable}\begin{tabular}\end{tabular}\begin{tablenotes}[option(para, online, flushleft)]\end{tablenotes}\end{threeparttable}
    \usepackage[%Paket laden für Symbolverzeichnis und Abkürzungsverzeichnis
    nonumberlist, %keine Seitenzahlen anzeigen
    numberline,   %richtet Eintrag im Inhaltsverzeichnis an chapter aus
    acronym,      %ein Abkürzungsverzeichnis erstellen
    toc]          %Einträge im Inhaltsverzeichnis
    {glossaries}
    
    %Ein Symbolverzeichnis erstellen
    \newglossary[slg]{symbolslist}{syi}{syg}{Symbolverzeichnis}
    
    %Style Symbolverzeichnis definieren
    \newglossarystyle{symbver}{ % put the glossary in a longtable environment:
    \renewenvironment{theglossary}
    {\begin{longtable}{lp{\glsdescwidth}cccp{\glspagelistwidth}}}
    {\end{longtable}}
    
    \renewcommand*{\glossaryheader}{}
    
    \renewcommand*{\glossaryentryfield}[4]{
    \glstarget{##1}\\[0.5cm]{##2}&{##4}&{##3}}% \\[0.5cm] Zeilenabstand zwischen Einträgen
    %ursprünglicher Befehl :
    % \glstarget{##1}\\[0.5cm]{##2}&{##3}&{##4}}% \\[0.5cm] Zeilenabstand zwischen Einträgen
    
    
    \renewcommand*{\glossarysubentryfield}[6]{
    \glossaryentryfield{##2}{##3}{##4}{[##5]}}
    
    \renewcommand*{\glsgroupskip}{}}
    
    %Den Punkt am Ende jeder Beschreibung deaktivieren
    \renewcommand*{\glspostdescription}{}
    
    
    \newglossaryentry{romanletter}{name={\textbf{\rlap{Lateinische Buchstaben}}},description={}} %trennt Symbolverzeichnis in lateinische und griechische Buchstaben
    \newglossaryentry{greekletter}{name={\textbf{\rlap{Griechische Buchstaben}}},description={}} %trennt Symbolverzeichnis in lateinische und griechische Buchstaben
    
    
    %Glossar-Befehle anschalten
    \makeglossaries
    
    \begin{document} %Beginn des Dokuments
    
    \newglossaryentry{symb:f}{
    name=\textit{f},
    symbol=mm,
    description={Brennweite der Fokussierlinse},
    parent=romanletter,
    sort=symbolf, type=symbolslist
    }
    \newglossaryentry{symb:rhoE}{
    name=$\rho\textsubscript{E}$,
    symbol=$\frac{\text{J}}{\text{\centi\meter\squared}}$, % oder \joule\per\centi\meter\squared
    description={Energiedichte des Laserstrahls auf dem Target},
    parent=greekletter,
    sort=symbolrhoE, type=symbolslist
    }
    \newglossaryentry{symb:theta}{
    name=$\theta$,
    symbol=\degree,
    description={\sc Bragg}-Winkel oder Glanzwinkel aus Röntgendiffraktometrie,
    parent=greekletter,
    sort=symboltheta, type=symbolslist
    }
    \newglossaryentry{symb:zeta}{
    name=$\zeta$,
    symbol=\degree,
    description={Ein Winkel},
    parent=greekletter,
    sort=symbolzeta, type=symbolslist
    }
    Das sind \gls{symb:theta}, \gls{symb:f}, \gls{symb:zeta} und \gls{symb:rhoE}!
    
    %Symbole ausgeben
    \printglossary[type=symbolslist,style=symbver,title=Symbolverzeichnis] %gibt Symbolverzeichnis aus, title= ohne Überschrift
    
    \end{document} %Ende des Dokuments
    jetzt stimmt zwar die Reihenfolge, aber nun wird das Verzeichnis im Dok nicht mehr am linken Seitenrandausgerichtet.

    Wie kann ich das jetzt realisieren? Ich hab da so meine Probleme mit dem Verständnis der Möglichkeiten mit glossaries.... würde mich sehr freuen wenn ihr mir helfen könnt.

    PS: die beiden pdfs zeigen mein Problem.

    viele Grüße,
    Sascha

  5. #5
    Registrierter Benutzer
    Registriert seit
    16.12.2014
    Beiträge
    2
    Das ist genau das was ich gesucht habe, leider bekomme ich bei dem Minimalbeispiel "TeX capacity exceeded, sorry [input stack size=5000]" woran kann das liegen?

  6. #6
    Registrierter Benutzer Avatar von rais
    Registriert seit
    18.07.2005
    Beiträge
    5.862
    Zitat Zitat von Mechaniko Beitrag anzeigen
    Das ist genau das was ich gesucht habe, leider bekomme ich bei dem Minimalbeispiel "TeX capacity exceeded, sorry [input stack size=5000]" woran kann das liegen?
    wenn es nicht tut, woher willst Du dann wissen, ob es `genau das' ist, was Du suchst?
    Wie dem auch sei, ich habe da so meine Zweifel, ob dieser Code jemals fehlerfrei lief...
    So wird z. B. bei der Umdefinition von \glossaryentryfield diesem nur noch vier Parameter zugestanden (in der Originaldefinition sind's fünf).
    Und es ist schon erstaunlich, wie viele Spalten deklariert -- und wie wenige davon benutzt werden.
    Davon abgesehen sollte bei der aktuellen Version \glossentry, nicht \glossaryentryfield verwendet werden.
    Code:
    \documentclass{scrreprt}
    \usepackage[ngerman]{babel,translator} %Sprache
    \usepackage[utf8]{inputenc} % Zeichenkodierung
    \usepackage[T1]{fontenc} % Cork-Encoding
    \usepackage{booktabs} %horizontale Linien in Tabellen
    %\usepackage{longtable} wird von glossaries geladen
    \usepackage{siunitx}% Einheiten nach SI
    \usepackage{glossaries}
    
    \newglossary[slg]{symbolslist}{syi}{syg}{Symbolverzeichnis}
    
    %Style Symbolverzeichnis definieren
    \newglossarystyle{symbver}{%
      \renewenvironment{theglossary}{%
        \begin{longtable}{@{}lcp{\glsdescwidth}p{\glspagelistwidth}@{}}
      }{\end{longtable}}%
    %
      \renewcommand*\glossaryheader{}%
      \renewcommand*\glsgroupheading[1]{}%
      \renewcommand*\glsgroupskip{}%
      \renewcommand*\glossentry[2]{%
        \glstarget{##1}{\glossentryname{##1}}% Eintragsname
        & \glossentrysymbol{##1}% Symbol, hier Einheit
        & \glossentrydesc{##1}% Beschreibung
        & ##2\tabularnewline
      }%\glossentry
      \renewcommand*\subglossentry[3]{%
        \glossentry{##2}{##3}%
      }%\subglossentry
    }% symbver
    
    \makeglossaries
    
    \begin{document} %Beginn des Dokuments
    
    \newglossaryentry{symb:f}{
      name=\ensuremath{f},
      symbol=\si{\milli\metre},
      description={Brennweite der Fokussierlinse},
      sort=symbolf,
      type=symbolslist
    }
    \newglossaryentry{symb:rhoE}{
      name=\ensuremath{\rho_{\text{E}}},
      symbol=\si{\joule\per\centi\meter\squared},
      description={Energiedichte des Laserstrahls auf dem Target},
      sort=symbolrhoE,
      type=symbolslist
    }
    \newglossaryentry{symb:theta}{
      name=\ensuremath{\theta},
      symbol=\si{\degree},
      description={\scshape Bragg}-Winkel oder Glanzwinkel aus Röntgendiffraktometrie,
      sort=symboltheta,
      type=symbolslist
    }
    \newglossaryentry{symb:zeta}{
      name=\ensuremath{\zeta},
      symbol=\si{\degree},
      description={Ein Winkel},
      sort=symbolzeta,
      type=symbolslist
    }
    Das sind \gls{symb:theta}, \gls{symb:f}, \gls{symb:zeta} und \gls{symb:rhoE}!
    
    %Symbole ausgeben
    \printglossary[type=symbolslist,style=symbver]
    
    \end{document} %Ende des Dokuments
    wär mal ein Ansatz.
    Bist Du sicher, daß Du einen neuen Stil definieren musst? Es gibt da so einige vordefinierte, darunter auch ein paar, die auf longtable basieren...

    MfG
    Rainer
    There's nothing a good whack with a hammer won't fix!

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •