Anzeige:
Ergebnis 1 bis 14 von 14

Thema: Überschrift im Symbolverzeichnis

  1. #1
    Registrierter Benutzer
    Registriert seit
    07.09.2004
    Beiträge
    9

    Überschrift im Symbolverzeichnis

    Hallo,

    ich erstelle für meine Diplomarbeit ein Symbolverzeichnis:

    \usepackage[german]{nomencl}
    ...
    \newcommand{\nomunit}[1]{%
    \renewcommand{\nomentryend}{\hspace*{\fill}#1}}
    ...
    \makeglossary
    \begin{document}
    ...
    \renewcommand{\nomname}{Symbolverzeichnis}
    \cleardoublepage
    \printglossary
    ...
    \end{document}

    Das liefert mir eine Seite mit "Symbolverzeichnis" als Überschrift.
    Darunter sind dann in 3 Spalten Symbol, Beschreibung und Einheit aufgelistet.
    Ich hätte gerne in der ersten Zeile in fetter Schrift genau diese drei Wörter über den Spaltenstehen, quasi als Spaltenüberschrift, Symbol, Beschreibung und Einheit. Darunter evtl. noch ein Strich und dann sollen die Symbole aufelistet werden.

    Wie kann ich das machen?
    Hat jemand eine Idee?

  2. #2
    Registrierter Benutzer
    Registriert seit
    07.10.2005
    Beiträge
    6

    Überschrift und Ausrichtung Symbolverzeichnis

    Moin!

    Hab da genau dasselbe Problem und würde zusätzlich noch gerne die drei Spalten einigermaßen gleich über die Seitenbreite aufgeteilt haben, momentan klebt die 3. Spalte ganz rechts, die ersten beiden hocken dafür dicht gedrängt am linken Seitenrand..

    Hat jemand inzwischen rausgefunden wie das machbar ist?
    Geändert von BoBm (12-10-2005 um 15:08 Uhr)

  3. #3
    Registrierter Benutzer Avatar von countbela666
    Registriert seit
    15.04.2005
    Ort
    Berlin
    Beiträge
    2.317
    Wie so eine Variante angegangen werden kann, steht in der nomencl-Doku. Durch ein paar Neudefinitionen kann man an Stelle der Liste eine longtable-Umgebung für das Verzeichnis definieren, deren Kopfzeile dann zu Beginn jeder neuen Seite wiederholt wird. Unter anderem muss auch die Datei nomencl.ist angepasst werden, indem man ihr die folgenden zwei Zeilen anfügt:
    Code:
    item_0 ""
    delim_t " \\\\\n"
    Die so veränderte Styledatei sollte am besten umbenannt werden, z.B. in mynomencl.ist und ist dann im aktuellen Projektverzeichnis am besten aufgehoben. Makeindex muss dann natürlich auch mit diesem File aufgerufen werden, also:
    Code:
    makeindex [hauptdatei].nlo -s mynomencl.ist -o [hauptdatei].nls
    Folgendes Minimalbeispiel enthält die besagte Neudefinition der nomenclature-Umgebung: (Vorsicht! Die Befehle sind an die aktuelle Version des nomencl-Pakets vom 24. September 2005 angepasst! Siehe auch die nomencl-Doku)
    Code:
    \documentclass{article}
    \usepackage{nomencl,longtable}
    %%%%%%%%%%%%%% zusätzliche unit-Spalte %%%%%%%%%%%%%%%%
    \newcommand{\nomunit}[1]{%
    \renewcommand{\nomentryend}{\hspace{2em}\hspace*{\fill}#1}}
    %%%%%%%%%%%%%% longtable an Stelle der Liste %%%%%%%%%%
    \makeatletter
    \def\@@@nomenclature[#1]#2#3{%
       \def\@tempa{#2}\def\@tempb{#3}%
       \protected@write\@nomenclaturefile{}%
          {\string\nomenclatureentry{#1\nom@verb\@tempa @{\nom@verb\@tempa}&%
             \begingroup\nom@verb\@tempb\protect\nomeqref{\theequation}%
                |nompageref}{\thepage}}%
       \endgroup
       \@esphack}
    \def\thenomenclature{%
       \@ifundefined{chapter}{\section*}{\chapter*}{\nomname}%
       \nompreamble
       \begin{longtable}[l]{@{}ll@{}}}
    \def\endthenomenclature{%
       \end{longtable}%
       \nompostamble}
    \makeatother
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    \makenomenclature
    \begin{document}
       % Header der Tabelle
       \nomenclature[0]{\textbf{Symbol}}{\textbf{Beschreibung}\nomunit{\textbf{Einheit}}}
       % beliebige Einträge
       \nomenclature{x}{descr\nomunit{m}}
       \nomenclature{a}{descr 2\nomunit{kg}}
       \printnomenclature
    \end{document}
    Grüße,
    Marcel

    //edit:
    Wie immer Vorsicht beim Kopieren des Codes: die doppelten Leerzeichen sind nicht beabsichtigt und werden von der CODE-Umgebung des Forums verursacht. Diese Leerzeichen löschen.
    Geändert von countbela666 (12-10-2005 um 17:04 Uhr)

    Listen to me children of the night, beyond the doors of darkness you will find
    a thousand worlds for you to see here, take my hand and follow me...

  4. #4
    Registrierter Benutzer
    Registriert seit
    07.10.2005
    Beiträge
    6
    Vielen Dank!

    Klappt alles bestens, hab bloß das usepackage colortbl rausnehmen müssen, da sonst die Einheiten nicht sauber untereinander stehen würden, is aber nicht wichtig..
    Wäre es denn noch möglich, die Einträge der 3. Spalte linksbündig auszurichten?

    Gruss, BoB

  5. #5
    Registrierter Benutzer
    Registriert seit
    07.10.2005
    Beiträge
    6
    Ok, noch ne Frage zu nomencl:
    Hab das ganze dreispaltig und mit der longtable-Umgebung prima hingekriegt. Jetzt sollen die Einträge aber sinnvoll sortiert werden, am besten mit subgroups. Die Einbindung der subgroups funktionniert aber nicht, ich krieg immer Fehler in der nls-Datei (..perhaps a missing \item). Und zwar bei den subgroup-Einträgen \nomgroup. Ich denk mal, da stimmt was mit der nomencl.ist nichtmehr, aber was?
    Hab sie, wie oben beschrieben geändert.

  6. #6
    Registrierter Benutzer Avatar von countbela666
    Registriert seit
    15.04.2005
    Ort
    Berlin
    Beiträge
    2.317
    Hi BoBm,

    du wirst zur Definition der Subgroups wahrscheinlich den Code aus der nomencl-Doku übernommen haben. Das Dumme dabei ist, dass der nur für die Listenvariante des Verzeichnisses funktioniert, wir haben das jedoch als Tabelle ausgelegt, so das LaTeX innerhalb des Verzeichnisses mit \items nichts mehr anfangen kann. Probier mal folgenden Code (funktioniert, ist aber nicht besonders hübsch):
    Code:
    \documentclass{article}
    \usepackage{nomencl,longtable,ifthen}
    %%%%%%%%%%%%%% zusätzliche unit-Spalte %%%%%%%%%%%%%%%%
    \newcommand{\nomunit}[1]{%
    \renewcommand{\nomentryend}{\hspace{2em}\hspace*{\fill}#1}}
    %%%%%%%%%%%%%%%% Subgroup-Definition %%%%%%%%%%%%%%%%%%
    \renewcommand{\nomgroup}[1]{%
      \ifthenelse{\equal{#1}{L}}{\textbf{Lateinische Buchstaben}\cr}{%
        \ifthenelse{\equal{#1}{G}}{\textbf{Griechische Buchstaben}\cr}{{\hspace{-.6em}}}}
    }
    %%%%%%%%%%%%%% longtable an Stelle der Liste %%%%%%%%%%
    \makeatletter
    \def\@@@nomenclature[#1]#2#3{%
       \def\@tempa{#2}\def\@tempb{#3}%
       \protected@write\@nomenclaturefile{}%
          {\string\nomenclatureentry{#1\nom@verb\@tempa @{\nom@verb\@tempa}&%
             \begingroup\nom@verb\@tempb\protect\nomeqref{\theequation}%
                |nompageref}{\thepage}}%
       \endgroup
       \@esphack}
    \def\thenomenclature{%
       \@ifundefined{chapter}{\section*}{\chapter*}{\nomname}%
       \nompreamble
       \begin{longtable}[l]{@{}ll@{}}}
    \def\endthenomenclature{%
       \end{longtable}%
       \nompostamble}
    \makeatother
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    \makenomenclature
    \begin{document}
       % Header der Tabelle
       \nomenclature[0]{\textbf{Symbol}}{\textbf{Beschreibung}\nomunit{\textbf{Einheit}}}
       % beliebige Einträge
       \nomenclature[lx ]{x}{latein. x\nomunit{bla}}
       \nomenclature[la ]{a}{latein. a\nomunit{bla}}
       \nomenclature[gx ]{$\chi$}{griech. x\nomunit{bla}}
       \nomenclature[ga ]{$\alpha$}{griech. a\nomunit{bla}}
       \printnomenclature
    \end{document}
    Grüße,
    Marcel

    wie immer Vorsicht mit den bösen Leerzeichen

    Listen to me children of the night, beyond the doors of darkness you will find
    a thousand worlds for you to see here, take my hand and follow me...

  7. #7
    Registrierter Benutzer
    Registriert seit
    07.10.2005
    Beiträge
    6
    Hi Marcel,
    vielen Dank nochmal! Klappt einwandfrei. Zum Thema Schönheit hab ich folgende Alternative anzubieten, is zwar auch nicht ganz sauber, sieht aber aus, wie ich es haben wollte:
    Code:
    %%%%%%%%%%%%%%%% Subgroup-Definition %%%%%%%%%%%%%%%%%%
    \renewcommand{\nomgroup}[1]{{\vspace{.5em}}%
    \ifthenelse{\equal{#1}{G}}{\textbf{Griechische Buchstaben}\cr}{% 
    \ifthenelse{\equal{#1}{L}}{\textbf{Lateinische Buchstaben}\cr}{{\hspace{-.6em}}{\vspace{.5em}}}}
    }
    und nach \begin{document}:
    Code:
    \nomenclature[gz ]{}{\nomunit{}}
    Grüße, BoB

  8. #8
    Registrierter Benutzer
    Registriert seit
    07.10.2005
    Beiträge
    6
    So, eine hoffentlich letzte Frage:

    Eigentlich soll die longtable-Umgebung ja bewirken, dass meine Spaltenüberschriften auf jeder Seite neu erscheinen. Tun sie aber nicht. Ich kann zwar manuell in der *.nls-Datei in der entsprechenden Zeile der Überschriftendeklaration \\ durch \endhead ersetzen, dann geht´s. Dass sollte jedoch auch automatisch gehen, oder?
    Gruss BoB

  9. #9
    Registrierter Benutzer
    Registriert seit
    17.08.2009
    Beiträge
    55
    ich hoffe es killt mich jetzt keiner, weil ich so einen alten thread hochhole.

    Aber: Ich hab den Code von countbela666 umgesetzt aus Beitrag 3. Der funktioniert super. Aber zwei kleine Sachen stören mich, und ich bekomm sie nicht hin.

    Zum einen:

    das Symbolverzeichnis wird nicht mehr im Inhaltsverzeichnis gelistet sobald ich seinen code einbaue.

    Zum anderen: Kann ich die Spalte "Einheit" auch zwischen die Spalte "Symbol" und " Beschreibung" einfügen ? Ich versuch irgendwie den Quelltext von ihm zu verstehen, komm aber nicht dahinter....

  10. #10
    Registrierter Benutzer
    Registriert seit
    07.10.2005
    Beiträge
    6
    Also ich mach das inzwischen so:
    Code:
    \RequirePackage{ifthen}
    \renewcommand{\nomgroup}[1]{
      \ifthenelse{\equal{#1}{B}}{\item[\large{\textbf{Lateinische Buchstaben}}]}{
      \ifthenelse{\equal{#1}{C}}{\item[\large{\textbf{Griechische Buchstaben}}]}{
      \ifthenelse{\equal{#1}{D}}{\item[\large{\textbf{Indizee }}]}{
      \ifthenelse{\equal{#1}{A}}{\item[\large{\textbf{Abkürzungen}}]}{
      \ifthenelse{\equal{#1}{E}}{\item[\large{\textbf{Regelungstechnische Größen }}]}{}}}}}}
      
      \newcommand{\nomunit}[1]{\renewcommand{\nomentryend}{\hspace*{\fill}#1}}
      
    \makenomenclature
    Weiter unten, nach \begin{document} sollte dann

    Code:
    \markright{Symbolverzeichnis} 
    \printnomenclature[5cm]
    \clearpage
    stehen.

    Ich hab mit Miktex 2.7 gearbeitet und in meine Kopfzeile war die Folgende:
    Code:
    \documentclass[12pt,a4paper,titlepage,abstracton,appendixprefix,chapterprefix,headsepline,BCOR12mm,bibliography=totoc,numbers=noenddot,index=totoc,listof=totoc,captions=tableheading,parskip=half]{scrreprt}
    Einträge in das Symbolverzeichnis erzeuge ich mit
    Code:
    \nomenclature[Bp ]{p}{Druck\nomunit{bar}}
    Die über den \nomunit-Befehl erzeugte Eintrag wird an das Ende der Zeile gehangen. Keine Ahnung, wie man das ändert. Zur Not vertauschst du das einfach schon bei der Eingabe. Meine Ausgabe erzeugt auch die überflüssigen Spaltenüberschriften "Einheit" oder "Beschreibung" nicht.
    Geändert von BoBm (26-01-2010 um 09:06 Uhr)

  11. #11
    Registrierter Benutzer Avatar von rais
    Registriert seit
    18.07.2005
    Beiträge
    5.862
    Moin moin,
    Zitat Zitat von xyceat Beitrag anzeigen
    ich hoffe es killt mich jetzt keiner, weil ich so einen alten thread hochhole.
    wieso? Solange es mit dem Thema zu tun hat, ist das imho Ok.
    Zitat Zitat von xyceat Beitrag anzeigen
    das Symbolverzeichnis wird nicht mehr im Inhaltsverzeichnis gelistet sobald ich seinen code einbaue.
    siehe Änderung von \thenomenclature
    Zitat Zitat von xyceat Beitrag anzeigen
    Zum anderen: Kann ich die Spalte "Einheit" auch zwischen die Spalte "Symbol" und " Beschreibung" einfügen ? Ich versuch irgendwie den Quelltext von ihm zu verstehen, komm aber nicht dahinter....
    kann man machen, denk aber dran, wenn Du einheitenlose Symbole verwendest, daß Du dann diese Einheitenspalte überspringen musst -- der Einfachheit halber hab ich dazu ein Makro `\nounit' gebaut (vgl. die Ausgabe bei ya--yd):
    Code:
    \documentclass{article}
    \usepackage[intoc]{nomencl}
    \usepackage{longtable}
    %%%%%%%%%%%%%% zusätzliche unit-Spalte %%%%%%%%%%%%%%%%
    \newcommand{\nomunit}[1]{%
      \parbox[t]{4.5em}{#1}}
    \newcommand*\nounit{\nomunit{~}}
    %%%%%%%%%%%%%% longtable an Stelle der Liste %%%%%%%%%%
    \makeatletter
    \def\@@@nomenclature[#1]#2#3{%
       \def\@tempa{#2}\def\@tempb{#3}%
       \protected@write\@nomenclaturefile{}%
          {\string\nomenclatureentry{#1\nom@verb\@tempa @{\nom@verb\@tempa}&%
             \begingroup\nom@verb\@tempb\protect\nomeqref{\theequation}%
                |nompageref}{\thepage}}%
       \endgroup
       \@esphack}
    \def\thenomenclature{%
      \@ifundefined{chapter}%
      {%
        \section*{\nomname}
        \if@intoc\addcontentsline{toc}{section}{\nomname}\fi%
      }%
      {%
        \chapter*{\nomname}
        \if@intoc\addcontentsline{toc}{chapter}{\nomname}\fi%
      }%
       \nompreamble
       \begin{longtable}[l]{@{}ll@{}}
        \textbf{Symbol}&\nomunit{\textbf{Einheit}}\textbf{Beschreibung}\tabularnewline
        \endhead
    }
    \def\endthenomenclature{%
       \end{longtable}%
       \nompostamble}
    \makeatother
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    \makenomenclature
    \begin{document}
    \tableofcontents
    foo
       % beliebige Einträge
       \nomenclature{x}{\nomunit{m}descr}
       \nomenclature{a}{\nomunit{kg}descr 2}
      \nomenclature{ya}{falsch}
      \nomenclature{yb}{\nomunit{}falsch}
      \nomenclature{yc}{\nomunit{~}geht}
      \nomenclature{yd}{\nounit richtig}
       \printnomenclature
    \end{document}
    MfG
    Rainer
    There's nothing a good whack with a hammer won't fix!

  12. #12
    Registrierter Benutzer
    Registriert seit
    16.10.2010
    Beiträge
    22
    Zitat Zitat von rais Beitrag anzeigen
    Code:
    \newcommand{\nomunit}[1]{%
      \parbox[t]{4.5em}{#1}}
    \newcommand*\nounit{\nomunit{~}}
    ...und schon wieder grab' einen so alten Thread aus... Mea maxima Culpa!

    Ich habe ebenfalls mein Verzeichnis in Gruppen aufgeteilt - habe jedoch die Vorgabe, dass der Raum zwischen Beschreibung und Einheit mit Punkten aufgefüllt werden soll.

    Realisiert habe ich das über
    [CODE]
    \newcommand{\nomunit}[1]{%
    \renewcommand{\nomentryend}{\dotfill #1}}
    [\CODE]

    Die Punkte werden jetzt allerdings überall gesetzt, d.h. auch da wo \nounit bei Einträgen ohne Einheit aufgerufen wird - \nomendentry wurde ja neu definiert...

    Wie schaffe ich es also, die Einträge, die ohne Einheit bleiben, von ihren Punkten zu "befreien"?


    Grüße
    Cyrus

  13. #13
    Registrierter Benutzer Avatar von rais
    Registriert seit
    18.07.2005
    Beiträge
    5.862
    Moin moin,
    Zitat Zitat von CyrusField Beitrag anzeigen
    ...und schon wieder grab' einen so alten Thread aus... Mea maxima Culpa!

    Ich habe ebenfalls mein Verzeichnis in Gruppen aufgeteilt - habe jedoch die Vorgabe, dass der Raum zwischen Beschreibung und Einheit mit Punkten aufgefüllt werden soll.

    Realisiert habe ich das über
    [CODE]
    \newcommand{\nomunit}[1]{%
    \renewcommand{\nomentryend}{\dotfill #1}}
    [\CODE]

    Die Punkte werden jetzt allerdings überall gesetzt, d.h. auch da wo \nounit bei Einträgen ohne Einheit aufgerufen wird - \nomendentry wurde ja neu definiert...

    Wie schaffe ich es also, die Einträge, die ohne Einheit bleiben, von ihren Punkten zu "befreien"?
    lass den \nomunit/\nounit doch einfach mal weg.
    Den \nounit hab ich mal gebaut, um bei der Anordnung
    Symbol/[Einheit/]Beschreibung die Einheit überspringen zu können (ohne dafür direkt eine eigene Spalte vorsehen zu müssen); Deiner Beschreibung nach hast Du die Anordnung
    Symbol/Beschreibung[/Einheit].
    BTW: nutzt Du überhaupt longtable und eine entsprechend angepasste Stildatei (vgl. Marcels Beitrag, #3)? Wenn nicht, wäre es vllt angebracht, daß Du einen neuen Thread erstellst (und darin auch gleich ein eigenes Minimalbeispiel zur Verfügung stellst).

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

  14. #14
    Registrierter Benutzer
    Registriert seit
    16.10.2010
    Beiträge
    22
    Manchmal sieht man den Wald vor lauter Bäumen nicht...

    Ich habe schlicht und einfach vergessen, den Pfad für den automatischen Makeindex-Durchlauf von TeXnicCenter an meine neue mynomencl.cfg anzupassen.

    Klar, dass dann alle Änderungen ins Leere gelaufen sind


    Edit:
    Aber ja - das \nounit weglassen hat auch geholfen

Lesezeichen

Berechtigungen

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