PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem mit nomencl



J0Sch
14-04-2010, 08:49
Moin

ich schaffe es leider nicht ein Abkürzungsverzeichnis mit nomencl zu erstellen...
Im Moment versuche ich das Beispiel in der Dokumentation nach zubauen.



\documentclass{article}
\usepackage{nomencl}
\makenomenclature

\begin{document}

\section*{Main equations}
\begin{equation}
a=\frac{N}{A}
\end{equation}%
\nomenclature{$a$}{The number of angels per unit area}%
\nomenclature{$N$}{The number of angels per needle point}%
\nomenclature{$A$}{The area of the needle point}%
The equation $\sigma = m a$%
\nomenclature{$\sigma$}{The total mass of angels per unit area}%
\nomenclature{$m$}{The mass of one angel}
follows easily.
\printnomenclature

\end{document}


Wenn ich das so kompiliere passiert erstmal garnichts (also wird ohne Fehler kompiliert allerdings seh ich kein Abkürzungsverzeichnis).
In der Dokumentation steht dass ich einen "makeindex" machen muss. Im Forum hab ich dann herausgefunden dass ich das wohl über
dos machen muss... o also über Eingabeaufforderung -> cmd -> in mein Verzeichnis gewechselt dann
"makeindex Dateiname.nlo -s nomencl.ist -o Dateiname.nls" eingeben. Irgendwas wird gemacht und in meinem Verzeichnis findet sich
nun eine Dateiname.nls.
Und Jetzt? Wie komm ich nun zu dem Verzeichnis? In der Dokumentation steht
dass ich einfach nochmal kompilieren soll und that`s it. Leider passiert da nischt :(

schonmal vielen Dank für jede Hilfe!
Grüße Josch

Ich arbeite mit Windows 7, MikTex 2.8 und TeXnicCenter

Schweinebacke
14-04-2010, 09:01
Bei dem makeindex-Lauf werden ggf. auch Fehler ausgegeben und auch eine Log-Datei (Default-Endung ist ilg) geschrieben. In der Log-Datei stehen ebenfalls ggf. Fehlermeldungen. Außerdem kann man sich die erzeugte nls-Datei mal ansehen. Wenn das alles gut aussieht, müsste beim nächsten LaTeX-Lauf die nls-Datei von \printnomenclature auch gelesen werden. Das steht dann in der Log-Datei des LaTeX-Laufs (Default-Endung log). Wenn es dabei keine Fehler gibt, gibt es danach auch eine Nomenklatur. Die kann allenfalls leer sein (wenn die nls-Datei nichts substantielles enthält).

In Deinem Fall müsste die Meldung auf dem Bildschirm in etwa so lauten:
This is makeindex, version 2.15 (kpathsea + Thai support).
Scanning style file .../texmf-dist/makeindex/nomencl/nomencl.ist..........done (10 attributes redefined, 3 ignored).
Scanning input file mrunix.nlo....done (5 entries accepted, 0 rejected).
Sorting entries....done (13 comparisons).
Generating output file mrunix.nls....done (16 lines written, 0 warnings).
Output written in mrunix.nls.
Transcript written in mrunix.ilg.Nach dem nächsten LaTeX-Lauf habe ich dann auch eine Nomenklatur mit 5 Einträgen.

bobmalaria
14-04-2010, 09:26
hi,

bevor du zu tief in nomencl einsteigst:
es ist ein gutes paket um genau ein verzeichnis zu erstellen. in deinem beispiel also ein symbolverzeichnis. solltest du aber mehrere verzeichnisse oder ein unterteiltes verzeichnis, z.b. abkürzungen und formelzeichen oder buchstaben und symbole haben, dann empfehle ich dir zum paket glossaries zu wechseln.

hier im forum findest du auch ansätze für mehrere nomencl verzecihnisse, aber die umsetzung ist nicht so einfach und glossaries funktioniert da viel problemloser und ist leichter an wünsche anzupassen.

gruss

J0Sch
14-04-2010, 10:02
Hi,

schonmal Danke für die Antworten.

also in meinem Logfile steht das:



This is makeindex, version 2.14 [02-Oct-2002] (kpathsea + Thai support).
Scanning style file C:/Users/Bär/AppData/Roaming/MiKTeX/2.8/makeindex/nomencl/nomencl.ist.......
** Input style error (file = C:/Users/Bär/AppData/Roaming/MiKTeX/2.8/makeindex/nomencl/nomencl.ist, line = 70):
-- Unknown specifier lethead_prefix.
** Input style error (file = C:/Users/Bär/AppData/Roaming/MiKTeX/2.8/makeindex/nomencl/nomencl.ist, line = 71):
-- Unknown specifier lethead_suffix.
** Input style error (file = C:/Users/Bär/AppData/Roaming/MiKTeX/2.8/makeindex/nomencl/nomencl.ist, line = 72):
-- Unknown specifier lethead_flag.
...done (10 attributes redefined, 3 ignored).
Scanning input file n.nlo....done (5 entries accepted, 0 rejected).
Sorting entries....done (13 comparisons).
Generating output file b.nls....done (16 lines written, 0 warnings).
Output written in b.nls.
Transcript written in n.ilg.


sind ja tatsächlich Fehlermeldungen drin... allerdings verstehe ich die nicht.

@bobmalaria werd mit das glossaries Paket mal anschauen

Grüße Josch

Schweinebacke
14-04-2010, 10:44
Die drei Fehlermeldungen spielen keine Rolle. Statt lethead_prefix, lethead_suffix und lethead_flag wird bei Dir einfach heading_prefix, heading_suffix und headings_flag verwendet. Entscheidend ist, dass bei Dir ebenfalls 5 Einträge in der nlo-Datei akzeptiert und 16 Zeilen in der nls-Datei geschrieben werden. Nach dem nächsten LaTeX-Lauf müsstest Du nun also eine Nomenklatur haben. Wenn das nicht der Fall ist, ist die log-Datei dieses nächsten LaTeX-Laufs wichtig. Da müsste zu Deinem Minimalbeispiel etwas drin stehen wie:
(.../texmf-dist/tex/latex/nomencl/nomencl.sty
Package: nomencl 2005/09/22 v4.2 Nomenclature package (LN)
\nomlabelwidth=\dimen103
\nom@tempdim=\dimen104
\nomitemsep=\skip43
)
\@nomenclaturefile=\write3
\openout3 = `mrunix.nlo'.


Writing nomenclature file mrunix.nlo
(./mrunix.aux)
\openout1 = `mrunix.aux'.

LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 5.
LaTeX Font Info: ... okay on input line 5.
LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 5.
LaTeX Font Info: ... okay on input line 5.
LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 5.
LaTeX Font Info: ... okay on input line 5.
LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 5.
LaTeX Font Info: ... okay on input line 5.
LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 5.
LaTeX Font Info: ... okay on input line 5.
LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 5.
LaTeX Font Info: ... okay on input line 5.
LaTeX Font Info: External font `cmex10' loaded for size
(Font) <7> on input line 8.
LaTeX Font Info: External font `cmex10' loaded for size
(Font) <5> on input line 8.
(./mrunix.nls) [1

] (./mrunix.aux) )
Here is how much of TeX's memory you used Entscheidend ist dabei die Zeile mit dem Lesen der nls-Datei.

rais
14-04-2010, 21:24
Moin moin,




Scanning input file n.nlo....done (5 entries accepted, 0 rejected).
Sorting entries....done (13 comparisons).
Generating output file b.nls....done (16 lines written, 0 warnings).


das klingt ja fast so, als hättest Du etwa


makeindex n.nlo -s nomencl.ist -o b.nls

aufgerufen ... den Stammnamen solltest Du (außer beim -s-Schalter) gleich lassen (es sei denn natürlich, Du willst per Script o. ä. die Ausgabedatei von makeindex noch beeinflussen und den `Zwischenschritt makeindex' noch greifbar haben ... in dem Fall fehlt uns diese Deine, hmm, Verfeinerung), sonst findet der Folgeaufruf von LaTeX die .nls wirklich nicht: ausgehend von einer `n.tex' wird beim \printnomenclature eine Datei `n.nls' erwartet (und Du hast Dir eine `b.nls' erzeugt).

MfG

J0Sch
15-04-2010, 06:41
Guten Morgen,

@Rais: das wird wohl ein Schreibfehler meinerseits gewesen sein, also das b anstatt dem n. Ich hab das Problem jetzt nicht mehr weiter verfolgt sonder zum glossaries Packet gewechselt :)
Mittlerweile hab ich es auch geschafft den makeindex Aufruf direkt in TeXnicCenter einzubauen.

Ich hab da noch zwei Fragen zu glossaries. Also ich hab es geschafft ein Symbolverzeichnis zu erstellen. Allerdings hat das zwei Spalten und ich hätte gerne drei (Symbol, Erklärung und Einheit). Das zweite Problem ist, dass ich alle Zeichen die in meinem Symbolverzeichnis auftauchen im Text erwähnt haben muss. Also muss ich z.B. \gls{symb:Pi} schreiben, wenn ich nur \pi in einer Formel verwende taucht der "pi-Eintrag" nicht auf.

hier mal das aktuelle Beispiel:
(sry für den langen Header... hab ich zu spät gesehen)



\documentclass[a4paper,11pt,oneside]{scrartcl}

\usepackage[latin1]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{ae} % Schöne Schriften für PDF-Dateien
\usepackage{lmodern} % Latin Modern
\usepackage{textpos}
\usepackage[headsepline, plainheadsepline]{scrpage2} % Kopf und Fußzeile (Linie unten = footsipline)
\usepackage{graphicx} % einfügen von Bildern
\usepackage{wrapfig} % Textumflossene Bilder
\usepackage[small, hang, nooneline]{caption} % Bildunterschriften (noonelin = Linksbündig)
\usepackage{subcaption} % 2 Bilder nebeneinander
\usepackage{amsmath} % für Funktionsgruppe
\usepackage{colortbl} % Tabellen farbig hinterlegen
\usepackage{xcolor}
\usepackage{array}
\usepackage{marvosym}
\usepackage{multirow}
\usepackage{units} % Darstellen von Einheiten
\usepackage{nicefrac} % brüche im Text schön darstellen
\usepackage{dcolumn} % Zahln in Tagellen am Komma ausrichten D{,}{,}{a.b}
\usepackage{booktabs}

\usepackage[
nonumberlist, %keine Seitenzahlen anzeigen
acronym, %ein Abkürzungsverzeichnis erstellen
toc, %Einträge im Inhaltsverzeichnis
section] %im Inhaltsverzeichnis auf section-Ebene erscheinen
{glossaries}

\usepackage[
pdftex,
Acrobat-Fenster passt.
colorlinks=true,
pdfstartview=Fit,
% blue,black, hier scheinbar auch ein Problem
pdftitle={},
pdfauthor={xxx},
pdfsubject={}
]{hyperref}

\newglossary[slg]{symbolslist}{syi}{syg}{Symbolverzeichnis} % Ein eigenes Symbolverzeichnis erstellen
\renewcommand*{\glspostdescription}{} %Den Punkt am Ende jeder Beschreibung deaktivieren
\makeglossaries % Glossar-Befehle anschalten

%================================ Befehle für Symbole ================================================== ======================

\newglossaryentry{symb:Pi}{
name= $\pi$,
description= {Die Kreiszahl.},
sort= symbolpi,
type= symbolslist
}

\newglossaryentry{symb:rho}{
name= $\rho$,
description= {Die Dichte.},
sort= symbolrho,
type= symbolslist
}
%================================================= ================================================== ==========================

\begin{document}
\section{hier pi}
Berechnungen mit \gls{symb:Pi} ergeben stets ein ungenaues Ergebnis

\begin{equation}
A=\pi\cdot r^2
\label{eq:Fläche Kreis}
\end{equation}

\section{und da rho}

\gls{symb:rho}
\begin{equation}
\rho=\frac{m}{V}
\label{eq:Dichte}
\end{equation}

\newpage
\printglossary[type=symbolslist,style=long] % Symbole ausgeben

\end{document}


Viele Grüße,
Josch