Formelverzeichnis Ebene TOC

Inhalt, Abbildungen, Tabellen, Quellcodes und andere Verzeichnisse


Sp0oph
Forum-Newbie
Forum-Newbie
Beiträge: 2
Registriert: Di 20. Apr 2021, 10:19

Formelverzeichnis Ebene TOC

Beitrag von Sp0oph »

Moin Leute,
ich bin realtiv neu hier und auch nicht sonderlich bewandert im Umgang mit LateX.
Aktuell schreibe ich meine Bachelorarbeit und drehe an den letzten Schrauben.
Soweit gefällt mir das Design bzw. Layout auch gut. Jedoch gibt es ein Problem bei der Einbindung
des Formelverzeichnisses in mein Inhalstverzeichnis. Es ware ohnehin schon sehr schwer, eine Prozedur zu
finden, die es mir erlaubt alle equations separat in einem neuen TOC einzubinden.
Das Problem ist quasi "nur" ein Schönheitsfehler. Die Listung des Formelverzeichnis im TOC erfolgt nämlich leider auf der falschen Ebene. Nach umfangreicher Recherche und "rumtüfteln" an der dafür verantwortlichen Prozedur konnte ich leider kein zufriedenstellendes Ergebnis erzielen. Nun stelle ich euch mein Minimalbeispiels vor, in der Hoffnung, dass mir geholfen werden kann:

\documentclass[a4paper,
            numbers=nodotatend,
            index=totoc,          % Index ins Inhaltsverzeichnis
            bibliography=totoc,   % Quellen ins Inhaltsverzeichnis
            listof=totoc          % Gleitumgebungsverzeichnisse ins IV
            ]{scrreprt}

\usepackage[left= 2.5cm,right = 2cm, bottom = 4 cm, bindingoffset=6mm]{geometry}
\setlength{\parindent}{0pt}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{fancyhdr}
\usepackage{lmodern}
\usepackage{here} 
\usepackage{bigints}
\usepackage{amsmath}
\usepackage{tocloft} 
\usepackage{verbatim}
\usepackage{titletoc}
\usepackage[T1]{fontenc}

% ============= Formelverzeichnis ============= 
\DeclareNewTOC[%
  loclevel=1 %<=== eine Änderung funktioniert nicht...
  indent=0pt,% kein Einzug im Verzeichnis
  hang=5em,% Einzug für den Text im Verzeichnis
  type=equation
]{loe}
\DeclareTOCStyleEntry[level=1]{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
% ^============= Formelverzeichnis =============^

\begin{document}
\pagestyle{fancy}

%Verzeichnis aller Tabellen
\cleardoublepage
\renewcommand{\listtablename}{Tabellenverzeichnis}
\addcontentsline{toc}{section}{\listtablename}\listoftables

%Verzeichnis aller Formeln ---- ZIEL ist es, dass das Verzeichnis die selbe Formatierung im Inhaltsverzeichnis bekommt, wie das Tabellen und Abbildungsverzeichnis
\cleardoublepage
\renewcommand{\listequationname}{Formelverzeichnis}
\addcontentsline{toe}{section}{\listequationname}\listofequations

%Dummy Dok.
\section{01_Titel}
void
\begin{tabular}{|c|c|}
    \hline
    Test & Test2 \\
    \hline
\end{tabular}
\caption{TestTabular}
\label{01_Titel}

\end{document}

Grummelgast

Re: Formelverzeichnis Ebene TOC

Beitrag von Grummelgast »

Schau dir mal die ganzen Warnungen wegen Inkompatibilitäten in der log-Datei an … :roll:

Wundert dich da wirklich noch, dass es Probleme gibt? Wobei du ja eigentlich mit dem Wert section selbst bei den manuellen Einträgen explizit falsche Ebenen vorgibst, statt einfach KOMA-Script die Einträge selbst vornehmen zu lassen.

Außerdem ist dein Beispiel nicht lauffähig, weil es Fehler wirft.

BTW:

Und was toclevel bewirkt, scheint dir auch nicht klar zu sein. Das bestimmt nämlich die Ebene des Eintrags in das jeweilige Verzeichnis (loe) nicht in das Inhaltsverzeichnis (toc).


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

Re: Formelverzeichnis Ebene TOC

Beitrag von KOMA »

Wenn man die übelsten Paketkombinationen und unsinnigen und überflüssigen Code-Teile auskommentiert, das ganze überhaupt lauffähig macht und ein Inhaltsverzeichnis (darum geht es doch in der Frage oder habe ich das falsch verstanden) und eine Beispielformel hinzufügt, landet man bei:

\documentclass[a4paper,% eigentlich überflüssig
            numbers=nodotatend,
            index=totoc,          % Index ins Inhaltsverzeichnis
            bibliography=totoc,   % Quellen ins Inhaltsverzeichnis
            listof=totoc          % Gleitumgebungsverzeichnisse ins IV
            ]{scrreprt}

\usepackage[left= 2.5cm,right = 2cm, bottom = 4 cm, bindingoffset=6mm]{geometry}
%\setlength{\parindent}{0pt}
%\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
%\usepackage{fancyhdr}
\usepackage{lmodern}
%\usepackage{here} 
\usepackage{bigints}
\usepackage{amsmath}
%\usepackage{tocloft} 
\usepackage{verbatim}
%\usepackage{titletoc}
\usepackage[T1]{fontenc}

% ============= Formelverzeichnis ============= 
\DeclareNewTOC[%
  tocentrylevel=1,
  tocentryindent=0pt,% kein Einzug im Verzeichnis
  tocentrynumwidth=5em,% Einzug für den Text im Verzeichnis
  type=equation
]{loe}

\newcaptionname{ngerman}\equationname{Formel}%
\newcaptionname{ngerman}\listequationname{Formelverzeichnis}%
\renewcaptionname{ngerman}\listtablename{Tabellenverzeichnis}%

% 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
% ^============= Formelverzeichnis =============^

\begin{document}
%\pagestyle{fancy}

\tableofcontents

%Verzeichnis aller Tabellen
%\cleardoublepage
%\renewcommand{\listtablename}{Tabellenverzeichnis}
%\addcontentsline{toc}{section}{\listtablename}
\listoftables

%Verzeichnis aller Formeln ---- ZIEL ist es, dass das Verzeichnis die selbe Formatierung im Inhaltsverzeichnis bekommt, wie das Tabellen und Abbildungsverzeichnis
%\cleardoublepage
%\renewcommand{\listequationname}{Formelverzeichnis}
%\addcontentsline{toe}{section}{\listequationname}
\listofequations

%Dummy Dok.
\chapter{Testkapitel}
void
\begin{tabular}{|c|c|}
    \hline
    Test & Test2 \\
    \hline
\end{tabular}
\captionof{table}{TestTabular}
\label{01_Titel}

\begin{align}
\equationentry{Testformel}
y=x
\end{align}
\end{document}

Ich kann da dann kein Problem mehr sehen. Falls das Dein Problem ebenfalls löst, merke: Weniger ist oft mehr. Wenn es Dein Problem nicht löst, dann mach Dein Problem bitte reproduzierbar (→ Minimalbeispiel) und erkläre es auch so, dass wir es verstehen können. Orientiere Dich beim Weglassen/Ersetzen von Paketen an den bereits erwähnten Warnungen in der log-Datei und an meinem Code.


Sp0oph
Forum-Newbie
Forum-Newbie
Beiträge: 2
Registriert: Di 20. Apr 2021, 10:19

Re: Formelverzeichnis Ebene TOC

Beitrag von Sp0oph »

Danke für die Hinweise und die Korrektur.
Das Ergebnis ist nun zufriedenstellend.
Der Thread kann somit geclosed werden.

PS: Für das nächste mal weiß ich nun, wie man ein funktionsfähiges Minimalbeispiel zeigt. :wink:


Antworten