PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Symbolverzeichnis



Kleeblatt
08-04-2011, 16:15
Hallo zusammen,

ich möchte ein Symbolverzeichnis in einem Vorlesungsskript erstellen.
Dazu habe ich mir einiges über glossary, glossaries und nomenclature angesehen. Leider muss man da immer diesen makeindex machen.
Gibt es eine Möglichkeit ohne makeindex auszukommen, so dass Latex das beim "normalen" kompilieren macht (ähnlich wie das Inhaltsverzeichnis)?
Allerdings ohne den Editor umstellen zu müssen.

Vielen Dank
Kleeblatt

bobmalaria
08-04-2011, 17:37
hi,

nein das wird nicht gehen, zumindest nicht mit sortierung der begriffe/symbole. du kannst natuerlich immer eine tabelle machen und dort seine symbole und erklaerungen eintragen.

makeindex wird eben zur sortierung und fuer querverweise usw. benoetigt. schreckst du vor dem aufwand des einstellens zurueck oder was ist dein grund es nicht zu versuchen?

gruss

Kleeblatt
11-04-2011, 09:56
Hey,

ich schrecke davor zurück hier mehrere Editoren einzustellen, da jeder seinen eigenen bevorzugt und viele arbeiten hier an der Vorlesung und können gerade mal den Text eintragen und kompilieren. Das wars dann aber auch und ich bin für den Rest zuständig. Wenn ich aber mal nicht da bin und vor einer Vorlesung noch schnell was geändert werden muss, gibts ein Problem. Das würde ich gerne umgehen.
Eine Tabelle per Hand erstellen sollte nur die allerletzte Notlösung sein.
Ich hätte einfach gerne die Möglichkeit im Text bei den erklärten Symbolen einen Befehl eizugeben: \befehl{Symbol}{Erklärung} und das soll dann am Ende gesammelt werden. Ich brauche das im Text, damit wenn ein Kapitel gestrichen wird, diese Symbole dann auch nicht mehr aufgelistet werden.
Im Prinzip sollte das doch einfach machbar sein, \section sammelt ja auch einfach alles der Reihenfolge nach im Inhaltsverzeichnis...

bobmalaria
11-04-2011, 10:12
hi,

ich verstehe dein problem, aber betrachte mal folgendes.

du fuehrst in der vorlesung variablen ein z.b.
\befehl{beta}{die beta variable} und dann im anschluss
\befehl{alpha}{die alpha variable}

dann wuerde in einer liste die z.b. dem inhaltsverzeichnis oder abbildungsverzeichnis nachempfunden wird "beta" vor "alpha" stehen. deshalb wird ja eben makeindex zum sortieren der eintraege verwendet.

wenn dir die sortierung egal ist und du die reihenfolge nach auftreten im text haben willst, dann gibt es pakete die erlauben neue listen zu erstellen (aehnlich denen von toc, lof lot,...)

ansonsten bleibt nur der makeindex umweg bzw. wuerdest du das paket glossaries verwenden, dann muesste nur auf jedem rechner ein perl-interpreter sein und es koennte das mitgelieferte makeglossaries.pl script aufgerufen werden (dieses script nimmt alle noetigen makeindex aufrufe automatisch vor).


makeglossaries vorlesung

das per hand in der eingebeaufforderung einzugeben oder im editor einzurichten ist simpel und kann im akademischen umfeld sicher zugemutet werden (oder nicht?)

gruss

Kleeblatt
11-04-2011, 11:51
hm ok dann komm ich wohl nicht um makeindex drum herum...
hier mein Code:

\documentclass[12pt,twoside]{article}
\usepackage{german,fancyhdr,float}
\usepackage{eurosym}
\usepackage[latin1]{inputenc}

\usepackage{nomencl}
\makenomenclature

\begin{document}

Das ist ein Test \nomenclature{\pi}{Kreiszahl}

\printnomenclature
\end{document}


beim pdflatex compilieren kommt folgendes:
Writing nomenclature file test2.nlo
(test2.aux)
No file test2.nls.

und dann geht makeindex natürlich auch nicht:
Couldn't find input index file test2 nor test2.idx.

was mache ich falsch?

bobmalaria
11-04-2011, 12:00
hi,

an deiner stelle wuerde ich nicht das nomencl paket verwenden. mit diesem stoesst du bald an dessen grenzen, vor allem wenn du dein verzeichnis in griechische und sonst was symbole unterteilen willst. das geht zwar auch, aber das paket glossaries kann das viel besser!

dazu habe ich auch mal HIER (http://www.mrunix.de/forums/showthread.php?t=68892&highlight=glossaries) was geschrieben. das scheit am anfang etwas viel zu sein, aber wenn man mal (in windows) ueber die perl huerde gesprungen ist, dann geht es in der folge ganz zuverlaessig.

gruss

Kleeblatt
11-04-2011, 12:04
hi,

das ist nicht ganz das was ich will, ich möchte im Text (und nicht vor \begin{document}) die Einträge machen.

Wenn ich dein Minimalbeispiel aber bei mir durchlaufen lasse, bekomme ich die sehr hilfreiche Meldung:
No file test3.gls.
STOP

und nach makeindex:
Nothing written in test3.ind.
Transcript written in test3.ilg.
STOP

u_fischer
11-04-2011, 13:27
Im Prinzip ist nicht sonderlich schwierig auf makeindex zu verzichten und einfach deine Begriffe in eine Datei zu schreiben, und anschließend wieder einzulesen:


\documentclass{article}
\usepackage[ansinew]{inputenc}
\newwrite\mysymbols
\immediate\openout\mysymbols=\jobname.symbols
\newcommand\writesymbol[2]{\immediate\write\mysymbols{\unexpanded{#1 & #2\\}}}

\newcommand\printsymbollist{%
\immediate\closeout\mysymbols
\begin{tabular}{ll}
\input{\jobname.symbols}
\end{tabular}}

\begin{document}
\writesymbol{$\omega$}{omega}

\writesymbol{$\alpha$}{alpha}

\writesymbol{äöü}{Umlaute}

\printsymbollist

\end{document}


oder mit caption:


\documentclass{article}
\usepackage{caption}
\DeclareCaptionType{sym}

\begin{document}
\captionof{sym}{$\gamma$: gamma symbol}

\captionof{sym}{$\beta$: beta symbol}

\listofsyms
\end{document}


Aber du kannst dann natürlich die Begriffe nicht sortieren und Doppelungen nicht vermeiden. Außerdem wird es sicherlich schnell Sonderwünsche geben: schönere Formatierung, soll auch in Überschriften funktionieren, die Symbolliste soll auch irgendwo mittendrin gedruckt werden können, Symbolliste per Kapitel ... und dann landest du doch bei einem der Profipakete für Glossare.

rais
11-04-2011, 20:37
Moin moin,


beim pdflatex compilieren kommt folgendes:
Writing nomenclature file test2.nlo
(test2.aux)
No file test2.nls.

und dann geht makeindex natürlich auch nicht:
Couldn't find input index file test2 nor test2.idx.

warum `natürlich'?


was mache ich falsch?
Du rufst makeindex nicht mit korrekten Parametern auf (vgl. texdoc nomencl -> makeindex), etwa


makeindex test2.nlo -s nomencl -o test2.nls

spätestens nach dem daran folgenden (pdf)LaTeX-Lauf wirst Du ferner feststellen, daß Du \pi besser im Mathemodus setzt ($\pi$ oder \ensuremath{\pi})


Wenn ich dein Minimalbeispiel aber bei mir durchlaufen lasse, bekomme ich die sehr hilfreiche Meldung:
No file test3.gls.

Ja, die Meldung ist sehr hilfreich, sie sagt Dir, daß Du bisher weder makeindex korrekt (in bezug auf glossaries) noch makeglossaries verwendet hast.


STOP

Diese Meldung bekomme ich allerdings nicht.


und nach makeindex:
Nothing written in test3.ind.
Transcript written in test3.ilg.
STOP

(auch hier kann ich mit dem `STOP' wenig anfangen) Vllt solltest Du Dir die Punkte 2 und 4 in dem von bobmalaria verlinkten Thread genauer ansehen -- prinzipiell machst Du hier den gleichen Fehler wie bei Deinem nomencl-Beispiel: Du rufst makeindex zur Erzeugung eines Index auf, aber nicht zur Erzeugung eines Glossars -- und der Begriff `makeglossaries' (wobei Du Dir selbst keine Gedanken darüber machen müsstest, wie genau makeindex zur Erstellung Deines Glossars zu verwenden wäre) ist hier auch bereits gefallen.

MfG

Kleeblatt
12-04-2011, 12:30
Hallo,

vielen Dank für eure Antworten.
Die Beispiele von u_fischer klappen einwandfrei bei mir. Danke!
Ich versuche jetzt noch das mit makeindex hinzubekommen, damit die Einträge sortiert werden, aber sollte das demnächst nicht klappen, dann muss es eben ohne Sortierung reichen.

Das Seltsame ist auch, dass die Ausgaben vom Editor abhängen. Ich habe hier nur die Möglichkeit WinEdt und LEd zu benutzen.

Bei WinEdt (mein Beispiel mit nomenclature) kompiliert einwandfrei aber es tut sich nichts nach
makeindex test3.nlo -s nomencl -o test3.nls
Meldung: Input index file test3.nlo not found
es wird kein Verzeichnis erstellt.

Beim LEd beim kompilieren:
Writing nomenclature file test3.nlo
(test3.aux)
No file test3.nls.
STOP

und dann nach makeindex...
Input index file test3.nlo not found




auch das Beispiel von bobmalaria kann ich nicht zum Laufen bringen.

WinEdt:
kompiliert einwandfrei aber es tut sich nichts nach
makeindex test4.nlo -s nomencl -o test4.nls
(Input index file test3.nlo not found)

LEd:
No file test4.gls.
STOP
Input index file test4.nlo not found


also wie kann ich es schaffen, dass dieses .nlo erzeugt wird?

Vielleicht ist es ganz simpel was ich falsch mache, aber ich bekomm es einfach nicht hin

rais
12-04-2011, 19:52
Moin moin,
das klingt alles sehr befremdlich ...


Bei WinEdt (mein Beispiel mit nomenclature) kompiliert einwandfrei aber es tut sich nichts nach
makeindex test3.nlo -s nomencl -o test3.nls
Meldung: Input index file test3.nlo not found
es wird kein Verzeichnis erstellt.

Beim LEd beim kompilieren:
Writing nomenclature file test3.nlo
(test3.aux)
No file test3.nls.
STOP

und dann nach makeindex...
Input index file test3.nlo not found
siehe oben: Writing nomenclature file test3.nlo: entweder hat Dir einer diese .nlo gelöscht oder Du rufst makeindex im falschen Pfad auf oder sowas.
Lass erstmal Deinen Editor in Ruhe, öffne eine Eingabeaufforderung, begib Dich per cd-Befehl in das Verzeichnis Deiner `test3.tex', tipp


latex test3
makeindex test3.nlo -s nomencl -o test3.nls
latex test3
latex test3



auch das Beispiel von bobmalaria kann ich nicht zum Laufen bringen.

WinEdt:
kompiliert einwandfrei aber es tut sich nichts nach
makeindex test4.nlo -s nomencl -o test4.nls
(Input index file test3.nlo not found)

LEd:
No file test4.gls.
STOP
Input index file test4.nlo not found


also wie kann ich es schaffen, dass dieses .nlo erzeugt wird?

Wenn Du statt nomencl glossaries verwendest, musst Du makeindex auch anders aufrufen, was Du besagtem Punkt 4 hättest entnehmen können.
Also erstmal eine Eingabeaufforderung dahergenommen, per cd in das Verzeichnis mit `test4.tex' gewechselt und schon


latex test4
makeindex test4.glo -s test4.ist -o test4.gls -t test4.glg
latex test4
latex test4

oder eben bei vorhandenem Perl auch einfach


latex test4
makeglossaries test4
latex test4
latex test4

MfG