Formelverzeichnis erstellen

Inhalt, Abbildungen, Tabellen, Quellcodes und andere Verzeichnisse


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

Beitrag von KOMA »

Shooter182 hat geschrieben: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?
Die Frage verstehe ich nicht. Inwiefern unterscheidet sich das von meinem ersten vollständigen Beispiel?
Shooter182 hat geschrieben:Zu guter letzt wie stelle ich es an damit das Formelverzeichnis im Inhaltsverzeichnis auftaucht.
Da gibt es verschiedene Möglichkeiten. Die einfachste ist die KOMA-Script-Option listof=totoc damit alle derartige Verzeichnisse ins Inhaltsverzeichnis eingetragen werden. Näheres zu dieser Option und zu den Alternativen wie man sie setzen kann, ist der KOMA-Script-Anleitung zu entnehmen.

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

Beitrag von Shooter182 »

 \documentclass{scrbook}
\usepackage{amsmath}
\usepackage[ngerman]{babel}
\usepackage{xcolor}

\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{Formelverzeichnis123}%
}

% 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}
\tableofcontents

\addcontentsline{toc}{subsection}{Formelverzeichnis} %Damit das Formelverzeichnis im Inhaltsver vor kommt
\renewcommand{\listofequations}{\Huge\color{red} Formelverzeichnis}
\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}

\newpage
\begin{equation}
\label{eq:Eq3}
\equationentry{XY-Anteil}
   a=b
\end{equation}


\end{document}
so ganz richtig ist das leider noch nicht bei mir, die Überschrift wird nachher nicht rot sein :D nur zum testen.

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

Beitrag von KOMA »

Wenn Du die komplett untaugliche Umdefinierung von \listofequations weg lässt und auch den Eintrag ins Inhaltsverzeichnis auf vernünftige Art vornimmst, sehe ich absolut kein Problem.

Beachte außerdem, dass bei scrbook die oberste Gliederungsebene nicht \section, sondern \chapter ist.

Nach entsprechender Korrektur Deines Beispiels zu:
\documentclass[listof=totoc]{scrbook}
\usepackage{amsmath}
\usepackage[ngerman]{babel}
\usepackage{xcolor}

\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}
\tableofcontents

\listofequations


\chapter{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}

\newpage
\begin{equation}
\label{eq:Eq3}
\equationentry{XY-Anteil}
   a=b
\end{equation}

\end{document}
ergibt sich das PDF aus dem Anhang.

Auf Seite 1 findest Du das Inhaltsverzeichnis u. a. mit dem Eintrag des Formalverzeichnisses. Auf Seite 3 findest Du das Formelverzeichnis. Ab Seite 5 das Beispielkapitel mit Formel 1.1 auf Seite 5, Formel 1.2 und 1.3 auf Seite 6, Formel 1.4 auf Seite 7. Und nun verrate mir, was dabei das Problem sein soll.
Dateianhänge
test.pdf
Ergebnis aus dem Beispielcode
(59.18 KiB) 1040-mal heruntergeladen

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

Beitrag von Shooter182 »

ich tue mir gerade nur schwer das minimalbeispiel richtig umzusetzen
deshalb hab ich mal 2 Screens gemacht.

Für \Chapter benutze ich einen Extra Style(\usepackage[Bjornstrup]{fncychap}), deshalb darf die Formelverzeichnis überschritt nicht als Chaper ausgegeben werden. Sondern ich gebe sie als Huge in Firmenfarben aus.

Im Inhaltsverzeichnis sollte das Verzeichnis als \subsection auftauchen.

Sorry das hätte ich sicher von Anfang an gleich klar stellen sollen.

szussi
Forum-Newbie
Forum-Newbie
Beiträge: 9
Registriert: Mi 27. Apr 2016, 11:08

Beitrag von szussi »

Hallo!

Ich greife das Thema hier nochmal auf und wollte fragen, ob es möglich ist die Nummerierung der Gleichungen auch in Klammern zu setzten.

Richtiger wäre ja eig.

(0.1) P-Anteil.................... 1
(0.2) I-Anteil.................... 2
(0.3) lange Formel.............3


Beste Grüße!

DADABBI

Beitrag von DADABBI »

Ob das richtig wäre, sei dahin gestellt. Aber klar, machen kann man das. Beispielsweise könnte man beim Schreiben der aktuellen Nummer mit \addcontentsline einfach \@currentlabel in die gewünschten runden Klammen setzen. Allerdings ist die 5 Jahre alte Lösung inzwischen auch schon teilweise veraltet. So besitzt KOMA-Script inzwischen eine Anweisung \addxcontentsline, die Optionen hang und indent sind bei \DeclareNewTOC veraltet und man kann die Form eines Verzeichniseintrags über Verzeichniseintragsstile sehr weitreichend verändern. Näheres dazu ist der aktuellen KOMA-Script-Anleitung zu entnehmen.

szussi
Forum-Newbie
Forum-Newbie
Beiträge: 9
Registriert: Mi 27. Apr 2016, 11:08

Beitrag von szussi »

Ich hab mir das so vorgestellt, und es funktioniert so ganz gut ... danke für Deinen Beitrag!
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% Welcome to Overleaf --- just edit your LaTeX on the left,
% and we'll compile it for you on the right. If you give
% someone the link to this page, they can edit at the same
% time. See the help menu above for more info. Enjoy!
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\documentclass[listof=totoc]{scrbook}
\usepackage{amsmath}
\usepackage[ngerman]{babel}
\usepackage{xcolor}

\DeclareNewTOC[%
  indent=0pt,% kein Einzug im Verzeichnis
  hang=5em,% 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{Gl. (\@currentlabel)}%
      \@currententry}%
    \global\let\@currententry\@empty
  \fi
}
% Neue Benutzeranweisung
\newcommand*{\equationentry}[1]{%
  \gdef\@currententry{#1}%
}
\makeatother


\begin{document}
\tableofcontents

\listofequations


\chapter{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}

\newpage
\begin{equation}
\label{eq:Eq3}
\equationentry{XY-Anteil}
   a=b
\end{equation}

\end{document}

Antworten