Nomencl in TeXstudio

Erstellen von Index, Glossar, Symbolverzeichnis, einer Nomenklatur etc. mit MakeIndex oder Xindy


Juhann
Forum-Newbie
Forum-Newbie
Beiträge: 2
Registriert: Fr 29. Mai 2015, 21:36

Nomencl in TeXstudio

Beitrag von Juhann »

Hallo,

ich bin ein echter LaTeX-Neuling und komme nicht weiter. Ich benutze TeXstudio 2.9.4.

Mein Problem ist die Arbeit mit der Klasse nomencl.

Problem 1:

Wie schaffe ich es, dass TeXstudio die Konvertierung von .nlo nach .nls von alleine übernimmt? Alles, was ich bisher gefunden habe, funktioniert bei mir nicht. Lediglich manuell per CMD geht.

Problem 2:

Ich würde die Ausgabe von nomencl gerne nach folgendem Gliedern:

-kleine lateinische Buchstaben
-große lateinische Buchstaben
-kleine griechische Buchstaben
-große griechische Buchstaben

Bisher habe ich folgendes:
\documentclass[]{scrbook}


\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{ngerman}
\usepackage[ngerman]{babel}
\usepackage{amsmath}
\usepackage[intoc]{nomencl}


\renewcommand{\nomname}{Formelzeichenverzeichnis}
\setlength{\nomlabelwidth}{.20\hsize}
\makenomenclature


\RequirePackage{ifthen} 
\newcommand{\nomgroupextra}[1]{\hspace*{\fill}#1% 
   \vspace*{-2ex}\item[]\hspace*{-\leftmargin}% 
   \rule[0.4pt]{\textwidth}{0.4pt}} 

\newcommand{\nomgroupentry}[3]{% 
   \vspace*{#1}\item[\textbf{#2}]\nomgroupextra{\textbf{#3}}} 

\newcommand{\nomunit}[1]{% 
\renewcommand{\nomentryend}{\hspace*{\fill}$\mathrm{#1}$}} 

\setlength{\nomitemsep}{0ex} 
\setlength{\nomlabelwidth}{10ex} 

\renewcommand{\nomgroup}[1]
 {\ifthenelse{\equal{#1}{l}}
  {\nomgroupentry{3ex}{Kleine lateinische Symbole}{}}
   {\ifthenelse{\equal{#1}{L}}
    {\nomgroupentry{3ex}{Große lateinische Symbole}{}}
     {\ifthenelse{\equal{#1}{g}}
      {\nomgroupentry{3ex}{kleine griechische Symbole}{}}
       {\ifthenelse{\equal{#1}{G}}
        {\nomgroupentry{3ex}{Große griechische Symbole}{}}
        {}
       }
      {}
     }
    {}
   }
  {}
 }


\begin{document}

Lorem ipsum


\printnomenclature


\nomenclature[l]{a}{Buchstabe a}
\nomenclature[L]{B}{Buchstabe B}
\nomenclature[g]{$\gamma$}{gamma}
\nomenclature[G]{$\Gamma$}{Gamma}
\nomenclature[g]{$\delta$}{delta}


\end{document}
Hierbei spuckt er mir jedoch folgendes aus (siehe Anhang), nachdem ich die .nlo-Datei per CMD in die .nls-Datei umgewandelt habe.


Vielen Dank im Voraus.

PS: falls mir jemand sagen kann, wie ich auch noch die horizontalen Linien weg bekomme, wäre das super!

PPS: mir fällt gerade auf, dass das delta vor dem Gamma steht, im griechischen Alphabet ist es jedoch umgekehrt. Wie schaffe ich es, dass nomencl das auch noch richtig sortiert?
Dateianhänge
Ergebnis des Minimalbesipiels
Ergebnis des Minimalbesipiels
Unbenannt.png (36.97 KiB) 2033 mal betrachtet

rais
Forum-Guru
Forum-Guru
Beiträge: 411
Registriert: Di 21. Sep 2010, 00:37

Re: Nomencl in TeXstudio

Beitrag von rais »

Juhann hat geschrieben: Ich würde die Ausgabe von nomencl gerne nach folgendem Gliedern:

-kleine lateinische Buchstaben
-große lateinische Buchstaben
-kleine griechische Buchstaben
-große griechische Buchstaben
Wenn makeindex den \nomgroup mit Inhalt füllt, kommen für makeindex nur 28 mögliche Werte bei raus: A--Z, Numbers oder Symbols.[1]
D.h. wenn Du zwischen Klein- und Großschrift unterscheiden willst, müsstest Du in Deinem \nomgroup auf vier unterschiedliche Großbuchstaben unterscheiden.
Juhann hat geschrieben:
\usepackage{ngerman}
\usepackage[ngerman]{babel}
Lass das ngerman-Paket weg, das spuckt babel wohlmöglich in die Suppe.
Juhann hat geschrieben: PS: falls mir jemand sagen kann, wie ich auch noch die horizontalen Linien weg bekomme, wäre das super!
Die hast Du doch in Deinem \nomgroupextra selbst definiert?
Juhann hat geschrieben: PPS: mir fällt gerade auf, dass das delta vor dem Gamma steht, im griechischen Alphabet ist es jedoch umgekehrt. Wie schaffe ich es, dass nomencl das auch noch richtig sortiert?
Ich bezweifle, daß man makeindex beibringen könnte, die Zeichenfolge $\delta$ als einzelnes Zeichen zu betrachten, (auch) da wirst Du Hand anlegen müssen.
\documentclass[]{scrbook}


\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
%\usepackage{ngerman}
\usepackage[ngerman]{babel}
\usepackage{amsmath}
\usepackage[intoc]{nomencl}


\renewcommand{\nomname}{Formelzeichenverzeichnis}
\setlength{\nomlabelwidth}{.20\hsize}
\makenomenclature


\RequirePackage{ifthen}
\newcommand{\nomgroupextra}[1]{\hspace*{\fill}#1}%
%   \vspace*{-2ex}\item[]\hspace*{-\leftmargin}%
%   \rule[0.4pt]{\textwidth}{0.4pt}}

\newcommand{\nomgroupentry}[3]{%
   \vspace*{#1}\item[\textbf{#2}]\nomgroupextra{\textbf{#3}}}

\newcommand{\nomunit}[1]{%
\renewcommand{\nomentryend}{\hspace*{\fill}$\mathrm{#1}$}}

\setlength{\nomitemsep}{0ex}
\setlength{\nomlabelwidth}{10ex}

\renewcommand{\nomgroup}[1]
 {\ifthenelse{\equal{#1}{K}}
  {\nomgroupentry{3ex}{Kleine lateinische Symbole}{}}
   {\ifthenelse{\equal{#1}{L}}
    {\nomgroupentry{3ex}{Große lateinische Symbole}{}}
     {\ifthenelse{\equal{#1}{F}}
      {\nomgroupentry{3ex}{kleine griechische Symbole}{}}
       {\ifthenelse{\equal{#1}{G}}
        {\nomgroupentry{3ex}{Große griechische Symbole}{}}
        {}
       }
      {}
     }
    {}
   }
  {}
 }


\begin{document}

Lorem ipsum


\printnomenclature


\nomenclature[k]{a}{Buchstabe a}
\nomenclature[l]{B}{Buchstabe B}
\nomenclature[fc]{$\gamma$}{gamma}
\nomenclature[gc]{$\Gamma$}{Gamma}
\nomenclature[fd]{$\delta$}{delta}


\end{document}
[1] vorausgesetzt, headings_flag ist positiv und numhead_positive sowie symhead_positive blieben unverändert (was bei der Standard-nomencl.ist der Fall ist).

BTW: nomencl ist ein Paket und keine Klasse.

MfG
Rainer
One of the joys of travel is visiting new towns and meeting new people---G.Khan (Robert Asprin, Another Fine Myth)

Juhann
Forum-Newbie
Forum-Newbie
Beiträge: 2
Registriert: Fr 29. Mai 2015, 21:36

Beitrag von Juhann »

Hallo rais,

vielen vielen Dank! Jetzt funktioniert alles so, wie es soll!

Auch mein erstes Problem konnte ich noch lösen. Dazu waren folgende Schritte nötig:

TeXstudio -> Optionen -> TeXstudio konfigurieren -> Befehle

Dort unter Makeindex den Befehl
makeindex.exe %.nlo -s nomencl.ist -o %.nls
eingeben.

Dann zu Erzeugen wechseln und bei Standardkompiler den Befehl
txs:///makeindex | txs:///pdflatex
eintragen.

Antworten