Seite 1 von 2

Formelverzeichnis erstellen

Verfasst: So 1. Mai 2011, 18:57
von armin1234
Hallo,

ich habe nach einem Tipp hier aus dem Forum meine Formeln folgendermaßen eingebunden:
\renewcommand{\theequation}{2-1}
\begin{gather}
a+b=c\nonumber\\
\text{Formel 2-1: Addition}\nonumber\\
\text{Quelle: \cite[S. 195]{Grau:Addition}}\nonumber
\end{gather}
habe ich damit die möglichkeit ein Formelverzeichnis automatisch generieren zu lassen?

Verfasst: Fr 13. Mai 2011, 10:04
von Shooter182
Also ich greife deine frage mal auf weil ich derzeit selbst nach einen Optimalen Weg suche ein Formelverzeichnis zu erstellen.
Bis jetzt löse ich es so:
\documentclass{scrbook}
\usepackage{amsmath}
\usepackage{tocloft}

\begin{document}
\newcommand{\listequationsname}{Formelverzeichnis}
\newlistof{myequations}{equ}{\listequationsname}
\newcommand{\myequations}[1]{%
\addcontentsline{equ}{myequations}{\protect\numberline{\theequation}#1}\par}

\listofmyequations
\section{Formeln}
\begin{equation}\label{eq:Eq1}
   a=b
\end{equation}
\myequations{P-Anteil \ref{eq:Eq1}}

\newpage

\begin{equation}\label{eq:Eq2}
   b=c
\end{equation}
\myequations{I-Anteil \ref{eq:Eq2}}
\newpage
\begin{equation}\label{eq:Eq3}
   Y=Kd \ast \left(Xd + \frac{1}{Tn} + \int Xd\ dt + d\ \frac{Xd}{dt}\right)
\end{equation}
\myequations{lange formel \ref{eq:Eq3}}

\end{document} 
Jedoch gehe ich davon aus man kann das auch besser machen.

gruß Andi

Verfasst: Fr 13. Mai 2011, 11:32
von KOMA
tocloft brauchst Du schon einmal nicht, wenn Du eine KOMA-Script-Klasse verwendest. Das Verzeichnis kann dann einfach mit:
\DeclareNewTOC[%
  indent=0pt,% kein Einzug im Verzeichnis
  hang=2em,% Einzug für den Text im Verzeichnis
  type=equation
]{loe}

\AtBeginDocument{%
  \newcaptionname{ngerman}\equationname{Formel}%
  \newcaptionname{ngerman}\listequationname{Formelverzeichnis}%
}
erzeugt werden. Die ersten beiden Optionen bei \DeclareNewTOC habe ich dabei nur zur Demonstration eingefügt. Man kann die auch weglassen.

Ausgegeben wird das Verzeichnis dann per
\listofequations
Dann hast Du bei Deinem Code noch das Problem, dass theoretisch zwischen dem Ende der Formel und dem Erzeugen des Verzeichniseintrags ein Seitenumbruch erfolgen könnte. Außerdem hast Du ein Problem mit align-Umgebungen mit mehreren Formeln. Das beides zu lösen ist ziemlich aufwändig. Ein erster Schritt könnte sein:
\documentclass{scrbook}
\usepackage{amsmath}
\usepackage[ngerman]{babel}

\DeclareNewTOC[%
  indent=0pt,% kein Einzug im Verzeichnis
  hang=2em,% Einzug für den Text im Verzeichnis
  type=equation
]{loe}

\AtBeginDocument{%
  \newcaptionname{ngerman}\equationname{Formel}%
  \newcaptionname{ngerman}\listequationname{Formelverzeichnis}%
}

% Dafür sorgen, dass Einträge immer dann erzeugt werden können, wenn auch Tags
% gesetzt werden:
\makeatletter
\newcommand*{\@currententry}{}
% Zwei amsmath-Anweisungen ändern:
\g@addto@macro\make@display@tag{\set@currententry}%
\def\tagform@#1{\maketag@@@{(\ignorespaces#1\unskip\@@italiccorr)}%
  \set@currententry}
\newcommand*{\set@currententry}{%
  \typeout{set current entry}%
  \ifx\@currententry\@empty\else
    \addcontentsline{loe}{equation}{\protect\numberline{\@currentlabel}%
      \@currententry}%
    \global\let\@currententry\@empty
  \fi
}
% Neue Benutzeranweisung
\newcommand*{\equationentry}[1]{%
  \gdef\@currententry{#1}%
}
\makeatother

\begin{document}

\listofequations

\section{Formeln}
\begin{equation}\label{eq:Eq1}\equationentry{P-Anteil}
   a=b
\end{equation}
\newpage

\begin{align}\label{eq:Eq2}\equationentry{I-Anteil}
   b&=c\\
   \label{eq:Eq3}\equationentry{lange Formel}
   Y&=Kd \ast \left(Xd + \frac{1}{Tn} + \int Xd\ dt + d\ \frac{Xd}{dt}\right)
\end{align}

\end{document}
Einfacher wird es natürlich, wenn man tatsächlich Titel setzt:
\documentclass[captions=nooneline]{scrbook}
\usepackage{amsmath}
\usepackage[ngerman]{babel}

\DeclareNewTOC[%
  counterwithin=chapter,
  indent=0pt,% kein Einzug im Verzeichnis
  hang=2em,% Einzug für den Text im Verzeichnis
  name=equation,
  type=xequation,
  nonfloat,
]{loe}

\AtBeginDocument{%
  \newcaptionname{ngerman}\xequationname{Formel}%
  \newcaptionname{ngerman}\listxequationname{Formelverzeichnis}%
}

\begin{document}

\listofxequations

\section{Formeln}
\begin{xequation-}
  \caption{P-Anteil}
\begin{equation}
   a=b
\end{equation}
\end{xequation-}
\newpage

\begin{xequation-}
  \caption{I-Anteil}
  \begin{align}\label{eq:Eq2}
    b&=c\\
    \intertext{\caption{lange Formel}}
   \label{eq:Eq3}
   Y&=Kd \ast \left(Xd + \frac{1}{Tn} + \int Xd\ dt + d\ \frac{Xd}{dt}\right)
 \end{align}
\end{xequation-}

\end{document}
In dem Fall sollte man sich aber überlegen, ob die Formeln selbst nicht besser ohne Nummer (also mit equation* und align*) gesetzt werden.

Verfasst: Fr 13. Mai 2011, 11:47
von Shooter182
Leider laufen deine Beispiele bei mir nicht ohne Fehler durch :/

An sich möchte ich eben die Formel in der Mitte des Blattes stehen haben und rechts außen daneben eine Nummer.

Verfasst: Fr 13. Mai 2011, 12:11
von KOMA
Shooter182 hat geschrieben:Leider laufen deine Beispiele bei mir nicht ohne Fehler durch :/
Findest Du, dass das eine hinreichende Problembeschreibung ist?

Nunja: Du verwendest vermutlich eine veraltete KOMA-Script-Version. Ich hatte extra die Option atbegin für \DeclareNewTOC nicht verwendet, die erst seit Version 3.09 existiert. Der Rest existiert aber bereits seit Version 3.06 und funktioniert seit Version 3.07 auch wirklich.

Verfasst: Fr 13. Mai 2011, 12:22
von Shooter182
nein natürlich ist das nicht ausreichend, aber ich kann die Fehlermeldung in Texnic leider nicht rauskopieren.
Bei miktex hab ich das update laufen lassen, aber wie update ich mein komascript.?
der erste Fehler ist wie erwartet:
! undefined control sequenz
1.5 DeclareNewTOC

10 weitere fehler folgen..

Verfasst: Fr 13. Mai 2011, 12:58
von KOMA
Shooter182 hat geschrieben:Bei miktex hab ich das update laufen lassen, aber wie update ich mein komascript.?
Wenn KOMA-Script über den MiKTeX-Paketmanager installiert wurde, dann erfolgt das Update auch über den MiKTeX-Update-Zauberer.

Wenn bei Dir aber nicht einmal \DeclareNewTOC definiert ist, dann hast Du eine KOMA-Script-Version vor 3.06, also eine frühestens von Februar 2010 aber vor Juni 2010. Also hast Du noch kein MiKTeX 2.9 (das ist Oktober 2010 erschienen). Demnach hat Dein MiKTeX mindestens das Ende der Bugfix-Zeit erreicht (das betrifft die Binaries, nicht die LaTeX-Pakete). Du solltest Dir ein Upgrade auf MiKTeX 2.9 überlegen.

Fehlermeldungen kann man übrigens ganz einfach aus der Log-Datei des TeX-Laufs kopieren.

Verfasst: Fr 13. Mai 2011, 15:59
von Shooter182
so update durchgeführt bin nun auf 2.9, aber nun gibt es keine Ausgabe.
http://img851.imageshack.us/img851/1931/latexprofil.png
http://img860.imageshack.us/img860/2134/latexfehler.png

es würde noch keine Log erstellt, als Datei.

Hab ich Miktex falsch eingebunden?

Verfasst: Fr 13. Mai 2011, 16:41
von KOMA
TeXnicCenter ist Schrott!!! Siehe dazu die unzähligen Diskussionen dazu in der letzten Zeit. Ersetze im Profil auf jeden Falls "%bm" durch "%tm". Siehe desweiteren das Dokument von Sepp zu TeXnicCenter, das Sepp in diversen Diskussionen bereitgestellt hat.

BTW: Falls Du kein Literaturverzeichnis im Dokument verwendest (also beispielsweise bei meinem Minimalbeispiel), solltest Du die Option »BibTeX in diesem Profil nicht verwenden« aktivieren. Falls Du keinen Index im Dokument verwendest (also beispielsweise bei meinem Minimalbeispiel), solltest Du die Option »MakeIndex in diesem Profil nicht verwenden« aktiveren. Das spart Dir dann die beiden überflüssigen Aufrufe, die im Zweifelsfall wegen falscher Parameter auch noch Fehler provozieren.

Verfasst: Fr 13. Mai 2011, 19:03
von Shooter182
so ich hab nun Miktex 2.9 und texniccenter neu installiert und sie da alles geht super.
nun tun sich mir 2 grundlegende Dinge auf.

In den Büchern in denen ich gerade lese steht nur die Formel und die Zahl in Klammer, aber kein Label dazu. Ist es möglich dies zu verbergen?
Zu guter letzt wie stelle ich es an damit das Formelverzeichnis im Inhaltsverzeichnis auftaucht.

dann möchte ich mich bei dir mal bedanken für deine mühen.