Archiv verlassen und diese Seite im Standarddesign anzeigen : Formel in nomenclature
c_verres
13-12-2007, 13:54
Hallo,
nomenclature erstellt bei mir wunderbar ein Abkürzungs- und Symbolverzeichnis.
Aber wenn ich z. B. mit
\nomenclature{$\int dx$}{Integral} eine Formel in das Verzeichnis aufnehmen will, heißt es nur
Scanning input file doku.nlo ... done (12 entries accepted, 1 rejected)
Kann ich irgendwie erzwingen, dass die Formel trotzdem aufgenommen wird?
c_verres
13-12-2007, 21:35
Keiner ne Idee?
Evtl. funktioniert das mit:
\begin{math} \int dx \end{math}
oder einfach nur
\( \int dx \)
c_verres
14-12-2007, 09:21
Evtl. funktioniert das mit:
\begin{math} \int dx \end{math}
oder einfach nur
\( \int dx \)
Leider nein.
Moin moin,
Aber wenn ich z. B. mit
\nomenclature{$\int dx$}{Integral} eine Formel in das Verzeichnis aufnehmen will, heißt es nur
Scanning input file doku.nlo ... done (12 entries accepted, 1 rejected)
an der Formel liegt es nicht -- zumindest funzt es so bei mir:
\documentclass{article}
\usepackage{nomencl}
\makenomenclature
\begin{document}
$\int dx$\nomenclature{$\int dx$}{ein Integral\dots}
\printnomenclature
\end{document}
Erstelle also bitte ein Minimalbeispiel.
MfG,
c_verres
16-12-2007, 08:49
\documentclass{article}
\usepackage{nomencl}
\makenomenclature
\begin{document}
$\int dx$\nomenclature{$\int dx$}{ein Integral\dots}
\printnomenclature
\end{document}
Ok, das klappt auch bei mir!
Warum aber klappt das hier nicht?
\documentclass{article}
\usepackage{nomencl}
\usepackage{braket}
\makenomenclature
\begin{document}
$\Braket{a|b}$\nomenclature{$\Braket{a|b}$}{Braket-Notation}
\printnomenclature
\end{document}
Ok, das klappt auch bei mir!
Warum aber klappt das hier nicht?
\documentclass{article}
\usepackage{nomencl}
\usepackage{braket}
\makenomenclature
\begin{document}
$\Braket{a|b}$\nomenclature{$\Braket{a|b}$}{Braket-Notation}
\printnomenclature
\end{document}
weil das |-Zeichen für makeindex eine besondere Bedeutung hat. Behelfen könntest Du Dir z. B. so:
\documentclass{article}
\usepackage{nomencl}
\usepackage{braket}
\makenomenclature
\newcommand\dummy{}
\begin{document}
\renewcommand\dummy{\Braket{a|b}}
$\Braket{a|b}$\nomenclature{$\dummy$}{Braket-Notation}
\printnomenclature
\end{document}
, dadurch taucht dieses | nicht mehr direkt in der von makeindex bearbeiteten .nlo-Datei auf -- wenn Du das öfter brauchst, dann kommt die Redifinition aber vermutlich an falscher Stelle...
Unglücklicherweise wird beim nomencl-Paket dieses Zeichen direkt verwendet, um es umdefinieren zu können, muß dies an zwei Stellen geschehen: in Deiner Präambel und in der .ist-Datei.
Letzteres ist leicht: kopiere Dir die nomencl.ist nach z. B. mynomencl.ist, dort ergänzt Du eine Zeile mit
encap '+'
(vorausgesetzt, '+' willst Du nicht auch mit in der Nomenklatur mit aufnehmen); diese mynomencl.ist speicherst Du erstmal in Deinem Projektordner.
Die Änderung in der Präambel ist da schon etwas umfangreicher;-)
%foo.tex:
\documentclass{article}
\usepackage{nomencl}
\usepackage{braket}
\newcommand\nomencapchar{+}%<--gleich mit encap in der .ist setzen!
\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{\thee quation}%
\nomencapchar nompageref}{\thepage}}%
\endgroup
\@esphack}
\makeatother
\makenomenclature
\begin{document}
$\Braket{a|b}$\nomenclature{$\Braket{a|b}$}{Braket-Notation}
\printnomenclature
\end{document}
und kompiliert wird dann entsprechend mit
latex foo.tex
makeindex foo.nlo -s mynomencl.ist -t foo.nlg -o foo.nls
latex foo.tex
latex foo.tex
MfG,
c_verres
17-12-2007, 12:38
Super! Das funktioniert.
Vielen Dank!
:)
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.