Formelverzeichnis erstellen

Inhalt, Abbildungen, Tabellen, Quellcodes und andere Verzeichnisse


armin1234
Forum-Newbie
Forum-Newbie
Beiträge: 5
Registriert: Mo 18. Apr 2011, 11:46

Formelverzeichnis erstellen

Beitrag 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?

Shooter182
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 56
Registriert: Di 10. Nov 2009, 11:51

Beitrag 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

Benutzeravatar
KOMA
TeX-Entwickler
TeX-Entwickler
Beiträge: 2958
Registriert: Fr 4. Jul 2008, 17:28
Kontaktdaten:

Beitrag 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.

Shooter182
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 56
Registriert: Di 10. Nov 2009, 11:51

Beitrag 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.

Benutzeravatar
KOMA
TeX-Entwickler
TeX-Entwickler
Beiträge: 2958
Registriert: Fr 4. Jul 2008, 17:28
Kontaktdaten:

Beitrag 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.

Shooter182
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 56
Registriert: Di 10. Nov 2009, 11:51

Beitrag 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..

Benutzeravatar
KOMA
TeX-Entwickler
TeX-Entwickler
Beiträge: 2958
Registriert: Fr 4. Jul 2008, 17:28
Kontaktdaten:

Beitrag 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.

Shooter182
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 56
Registriert: Di 10. Nov 2009, 11:51

Beitrag 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?

Benutzeravatar
KOMA
TeX-Entwickler
TeX-Entwickler
Beiträge: 2958
Registriert: Fr 4. Jul 2008, 17:28
Kontaktdaten:

Beitrag 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.

Shooter182
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 56
Registriert: Di 10. Nov 2009, 11:51

Beitrag 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.

Antworten