Erstellung eines Formelverzeichnis ohne tocloft

Inhalt, Abbildungen, Tabellen, Quellcodes und andere Verzeichnisse


DerNapster
Forum-Newbie
Forum-Newbie
Beiträge: 5
Registriert: Mi 9. Mär 2016, 09:05

Erstellung eines Formelverzeichnis ohne tocloft

Beitrag von DerNapster »

Guten Morgen zusammen,

ich bin leider noch einmal auf eure Hilfe angewiesen. Mein aktuelles Problem ist die Erstellung eines Formelverzeichnisses. Falls mögliche möchte ich ein Formelverzeichnis ohne die Verwendung von tocloft erstellen, da tocloft die Formatierung meines Inhaltsverzeichnisses grundlegend ändert.

Bitte schaut euch folgendes Minimalbeispiel an:
\documentclass[11pt,
a4,
bibliography=totoc,
listof=totoc,
listof=entryprefix,
toc=sectionentrywithdots]{scrartcl}

\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{booktabs, tabularx}
\usepackage[center]{caption}
\usepackage{setspace}
\usepackage{acronym}
\usepackage{listings}
\usepackage[pdfpagelabels=true]{hyperref}
\usepackage{titlesec}
\usepackage{graphicx}
\usepackage{ltablex}


\usepackage[
nonumberlist, %keine Seitenzahlen anzeigen
toc,          %Einträge im Inhaltsverzeichnis
section]      %im Inhaltsverzeichnis auf section-Ebene erscheinen
{glossaries}
\renewcommand{\glossarysection}[2][]{}
 
%Ein eigenes Symbolverzeichnis erstellen
\newglossary[slg]{symbolslist}{syi}{syg}{Symbolverzeichnis}
 
%Den Punkt am Ende jeder Beschreibung deaktivieren
\renewcommand*{\glspostdescription}{}

%Glossar-Befehle anschalten
\makeglossaries

%Befehle für Symbole
\newglossaryentry{symb:Pi}{
	name=$\pi$,
	description={Die Kreiszahl.},
	sort=symbolpi, type=symbolslist
}
\newglossaryentry{symb:Phi}{
	name=$\varphi$,
	description={Ein beliebiger Winkel.},
	sort=symbolphi, type=symbolslist
}
\newglossaryentry{symb:Lambda}{
	name=$\lambda$,
	description={Eine beliebige Zahl, mit der der nachfolgende Ausdruck
		multipliziert wird.},
	sort=symbollambda, type=symbolslist
}

%Befehle für Glossar
\newglossaryentry{AD}{
	name=Active Directory,
	description={Active Directory ist in einem Windows 2000/" "Windows
		Server 2003-Netzwerk der Verzeichnisdienst, der die zentrale
		Organisation und Verwaltung aller Netzwerkressourcen erlaubt. Es
		ermöglicht den Benutzern über eine einzige zentrale Anmeldung den
		Zugriff auf alle Ressourcen und den Administratoren die zentral
		organisierte Verwaltung, transparent von der Netzwerktopologie und
		den eingesetzten Netzwerkprotokollen. Das dafür benötigte
		Betriebssystem ist entweder Windows 2000 Server oder
		Windows Server 2003, welches auf dem zentralen
		Domänencontroller installiert wird. Dieser hält alle Daten des
		Active Directory vor, wie z.B. Benutzernamen und
		Kennwörter.}
}


\renewcaptionname{ngerman}{\figurename}{Abb.}
\renewcaptionname{ngerman}{\tablename}{Tab.}

\BeforeStartingTOC[lof]{\def\autodot{:}}
\BeforeStartingTOC[lot]{\def\autodot{:}}

\makeatletter
\def\l@lstlisting#1#2{\@dottedtocline{1}{0em}{1em}{\hspace{1,5em} Lst. #1}{#2}}
\makeatother

\begin{document}
	\titlespacing{\section}{0pt}{12pt plus 4pt minus 2pt}{12pt plus 2pt minus 2pt}
	\titlespacing{\subsection}{0pt}{12pt plus 4pt minus 2pt}{6pt plus 2pt minus 2pt}
	\titlespacing{\subsubsection}{0pt}{12pt plus 4pt minus 2pt}{-6pt plus 2pt minus 2pt}
	
	% Vorspann Seitennummerierung
	\renewcommand{\thesection}{\Roman{section}}
	\renewcommand{\theHsection}{\Roman{section}}
	\pagenumbering{Roman}
		
	\singlespacing
	\renewcommand{\contentsname}{Inhaltsverzeichnis}
	\phantomsection
	\tableofcontents
	\pagebreak
	
	\section*{Abkürzungsverzeichnis}
	\addcontentsline{toc}{section}{Abkürzungsverzeichnis} 
	\begin{acronym}[CRISP-DM] % längste Abkürzung steht in eckigen Klammern
		\setlength{\itemsep}{-\parsep} % geringerer Zeilenabstand
		\acro{Abb.}{Abbildung}
		\acro{CRISP-DM}{\textit{Cross Industry Standard Process for Data Mining}}
	\end{acronym}
	
	\section*{Symbolverzeichnis}	
	\phantomsection
	\addcontentsline{toc}{section}{Symbolverzeichnis}
	\glsaddall[types=symbolslist]
	\printglossary[type=symbolslist,style=long]
	
	\listoffigures
	
	\listoftables 
	
	\pagebreak
	\renewcommand{\thesection}{\arabic{section}}
	\renewcommand{\theHsection}{\arabic{section}}
	\setcounter{section}{0}
	\pagenumbering{arabic}
	\setcounter{page}{1}
	
	\section{Kapitel}
	
	\subsection{Unterkapitel}
	
	\begin{figure}[!h]
		\centering
		\includegraphics[width=0.60\linewidth]{Bilder/CRISP-DM.jpg}
		\captionof{figure}[Phasen des CRISP-DM Vorgehensmodell]{Phasen des CRISP-DM Vorgehensmodell	\\ (Quelle)}
		\label{fig:crispdmabb}
	\end{figure}
	
	\begin{equation}\label{eq:Eq1} 
	x^{(i)}_{k} \text{ ist Ausrei\ss er} \Leftrightarrow |x^{(i)}_{k} - \bar{x}^{(i)}| > m*\sigma^{(i)}
	\end{equation}
	
	Test Test Test \gls{AD}.
	
	\begin{tabularx}{\textwidth}{p{5.3cm}p{1.5cm}p{1.5cm}p{1.5cm}p{1.5cm}}
		\caption[Übersicht der Ergebnisse der globalen Ausreißeranalyse]{Übersicht der Ergebnisse der globalen Ausreißeranalyse} \\
		\toprule
		\textbf{} & \textbf{ $ 2 \sigma $} & \textbf{$ 3 \sigma $} & \textbf{$ 4,5 \sigma $} & \textbf{$ 6 \sigma $} \\
		\midrule
		\endfirsthead
		\toprule
		\textbf{} & \textbf{$ 2 \sigma $} & \textbf{$ 3 \sigma $} & \textbf{$ 4,5 \sigma $} & \textbf{$ 6 \sigma $} \\
		\midrule
		\endhead
		Anzahl Fälle mit Ausreißern & 700 & 380 & 183 & 90 \\
		\addlinespace
		\bottomrule 
	\end{tabularx}
	
	\pagebreak
	\section*{Glossar}
	\phantomsection
	\addcontentsline{toc}{section}{Glossar}
	\glsaddall
	\printglossary[style=altlist,title=Glossar]
	
\end{document}
Die meistverbreitete Lösung für ein Formelverzeichnis ist ja:
\newcommand{\listequationsname}{Formelverzeichnis}
	\newlistof{myequations}{equ}{\listequationsname}
	\newcommand{\myequations}[1]{%
	\addcontentsline{equ}{myequations}{\protect\numberline{\theequation}#1}\par}
	
	\listofmyequations
Und dann die Kennzeichnung einer Formel mit:
\begin{equation}\label{eq:Eq1} 
x^{(i)}_{k} \text{ ist Ausrei\ss er} \Leftrightarrow |x^{(i)}_{k} - \bar{x}^{(i)}| > m*\sigma^{(i)}
\end{equation}
\myequations{m-Sigma Regel \ref{eq:Eq1}} 
Da diese Lösung aber nur wie gesagt mit dem Paket tocloft funktioniert, kann ich sie nicht nutzen. Hat jemand von euch noch eine Idee wie ich das Problem lösen kann? Der Aufbau und das Design des Inhaltsverzeichnisses soll sich dabei nicht ändern. Ich habe eine kompilierte Version des Minimalbeispiels als PDF an diesen Thread angehängt.

Vielen Dank für eure Mühe und viele Grüße,
Christopher
Dateianhänge
minimalbeispiel.pdf
Minimalbeispiel PDF
(266.63 KiB) 273-mal heruntergeladen

Noch so einer

Beitrag von Noch so einer »

Dein Code ist ziemlich merkwürdig. Diverses wird gar nicht verwendet, anderes kann man sehr viel besser lösen oder ist überflüssig und manches ist vermutlich einfach nur falsch. Daher hier ein Vorschlag, bei dem weder tocloft verwendet wird, noch das für KOMA-Script-Klassen explizit nicht empfohlene titlesec. Das ganze sollte ab KOMA-Script 3.17 (alle TeX-Distributionen bieten derzeit min. 3.19a oder bereits 3.20) funktionieren:
\documentclass[11pt,% ist eigentlich überflüssig weil Voreinstellung
a4paper,% Option a4 gibt es nicht, a4paper ist eigentlich überflüssig weil Voreinstellung
bibliography=totoc,
listof=totoc,
listof=entryprefix,
toc=sectionentrywithdots]{scrartcl}

\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{booktabs}
\usepackage[center]{caption}
\usepackage{acronym}
\usepackage{listings}
\usepackage{graphicx}
\usepackage{ltablex}

\usepackage[
nonumberlist, %keine Seitenzahlen anzeigen
toc,          %Einträge im Inhaltsverzeichnis
section]      %im Inhaltsverzeichnis auf section-Ebene erscheinen
{glossaries}
\renewcommand{\glossarysection}[2][]{}
 
%Ein eigenes Symbolverzeichnis erstellen
\newglossary[slg]{symbolslist}{syi}{syg}{Symbolverzeichnis}
 
%Den Punkt am Ende jeder Beschreibung deaktivieren
\renewcommand*{\glspostdescription}{}

%Glossar-Befehle anschalten
\makeglossaries

%Befehle für Symbole
\newglossaryentry{symb:Pi}{
   name=$\pi$,
   description={Die Kreiszahl.},
   sort=symbolpi, type=symbolslist
}
\newglossaryentry{symb:Phi}{
   name=$\varphi$,
   description={Ein beliebiger Winkel.},
   sort=symbolphi, type=symbolslist
}
\newglossaryentry{symb:Lambda}{
   name=$\lambda$,
   description={Eine beliebige Zahl, mit der der nachfolgende Ausdruck
      multipliziert wird.},
   sort=symbollambda, type=symbolslist
}

%Befehle für Glossar
\newglossaryentry{AD}{
   name=Active Directory,
   description={Active Directory ist in einem Windows 2000/" "Windows
      Server 2003-Netzwerk der Verzeichnisdienst, der die zentrale
      Organisation und Verwaltung aller Netzwerkressourcen erlaubt. Es
      ermöglicht den Benutzern über eine einzige zentrale Anmeldung den
      Zugriff auf alle Ressourcen und den Administratoren die zentral
      organisierte Verwaltung, transparent von der Netzwerktopologie und
      den eingesetzten Netzwerkprotokollen. Das dafür benötigte
      Betriebssystem ist entweder Windows 2000 Server oder
      Windows Server 2003, welches auf dem zentralen
      Domänencontroller installiert wird. Dieser hält alle Daten des
      Active Directory vor, wie z.B. Benutzernamen und
      Kennwörter.}
}


\renewcaptionname{ngerman}{\figurename}{Abb.}
\renewcaptionname{ngerman}{\tablename}{Tab.}

\BeforeStartingTOC[lof]{\def\autodot{:}}
\BeforeStartingTOC[lot]{\def\autodot{:}}

\RedeclareSectionCommand[%
  beforeskip=-12pt plus -4pt minus -2pt,
  afterskip=12pt plus 4pt minus 2pt
]{section}
\RedeclareSectionCommand[%
  beforeskip=-12pt plus -4pt minus -2pt,
  afterskip=6pt plus 2pt minus 2pt
]{subsection}
\RedeclareSectionCommand[%
  beforeskip=-12pt plus -4pt minus -2pt,
  afterskip=-6pt plus -2pt minus -2pt% Alle Teile wechseln das Vorzeichen!
]{subsubsection}

\DeclareNewTOC[
  type=equation,
  name={Gl.},
  types=equations,
  listname={Formelverzeichnis},
]{equ}
\newcommand{\equationentry}[2][\theequation]{%
  \addxcontentsline{equ}{equation}[{#1}]{#2}%
}
\BeforeStartingTOC[equ]{\def\autodot{:}}

\usepackage{scrhack}% unterstellt u. a. listings zumindest teilweise tocbasic
% Das folgende würde man auch besser mit tocbasic lösen, das geht
% aber erst ab KOMA-Script 3.20, was noch nicht allgemein verbreitet ist.
% Daher lasse ich das an dieser Stelle einmal unverändert.
\makeatletter
\def\l@lstlisting#1#2{\@dottedtocline{1}{0em}{1em}{\hspace{1,5em} Lst. #1}{#2}}
\makeatother

\usepackage{mwe}

\usepackage[pdfpagelabels=true]{hyperref}% So spät wie möglich laden!!!

\begin{document}
   % Vorspann Seitennummerierung
   \pagenumbering{Roman}% Du bist ganz sicher, dass Du nicht eine Buchklasse
                        % verwenden willst?
     
   \tableofcontents
   \clearpage% \pagebreak ist hier vollkommen falsch. Und Du bist wirklich
             % sicher, dass Du keine Buchklasse verwenden willst??

   \addsec{Abkürzungsverzeichnis}
   \begin{acronym}[CRISP-DM] % längste Abkürzung steht in eckigen Klammern
      \setlength{\itemsep}{-\parsep} % geringerer Zeilenabstand
      \acro{Abb.}{Abbildung}
      \acro{CRISP-DM}{\textit{Cross Industry Standard Process for Data Mining}}
   \end{acronym}
   
   \addsec{Symbolverzeichnis}  
   \glsaddall[types=symbolslist]
   \printglossary[type=symbolslist,style=long]
   
   \listoffigures
   
   \listoftables

   \listofequations
   
   \clearpage% \pagebreak ist hier vollkommen falsch. Und Du bist wirklich
             % sicher, dass Du keine Buchklasse verwenden willst???
   \pagenumbering{arabic}% Du bist ganz sicher, dass Du nicht eine Buchklasse
                         % verwenden willst????
   
   \section{Abschnitt}% scrartcl kennt keine Kapitel. Bist Du wirklich 
                        % sicher, dass Du keine Buchklasse verwenden willst?????
   
   \subsection{Unterabschnitt}
   
   \begin{figure}[!h]
      \centering
      \includegraphics[width=0.60\linewidth]{example-image}% Bild im
                                % Minimalbeispiel ersetzt!
      \captionof{figure}[Phasen des CRISP-DM Vorgehensmodell]{Phasen des CRISP-DM Vorgehensmodell   \\ (Quelle)}
      \label{fig:crispdmabb}
   \end{figure}
   
   \begin{equation}\label{eq:Eq1}
     x^{(i)}_{k} \text{ ist Ausrei\ss er} \Leftrightarrow |x^{(i)}_{k} -
     \bar{x}^{(i)}| > m*\sigma^{(i)}
     \equationentry{m-Sigma Regel}
   \end{equation}
   
   Test Test Test \gls{AD}.
   
   \begin{tabularx}{\textwidth}{p{5.3cm}p{1.5cm}p{1.5cm}p{1.5cm}p{1.5cm}}
      \caption[Übersicht der Ergebnisse der globalen Ausreißeranalyse]{Übersicht der Ergebnisse der globalen Ausreißeranalyse} \\
      \toprule
      \textbf{} & \textbf{ $ 2 \sigma $} & \textbf{$ 3 \sigma $} & \textbf{$ 4,5 \sigma $} & \textbf{$ 6 \sigma $} \\
      \midrule
      \endfirsthead
      \toprule
      \textbf{} & \textbf{$ 2 \sigma $} & \textbf{$ 3 \sigma $} & \textbf{$ 4,5 \sigma $} & \textbf{$ 6 \sigma $} \\
      \midrule
      \endhead
      Anzahl Fälle mit Ausreißern & 700 & 380 & 183 & 90 \\
      \addlinespace
      \bottomrule
   \end{tabularx}
   
   \blinddocument

   \clearpage% \pagebreak ist hier vollkommen falsch!
   \addsec{Glossar}
   \glsaddall
   \printglossary[style=altlist,title=Glossar]
   
\end{document}
Die neu von mir verwendeten Befehle sind in der KOMA-Script-Anleitung oder im KOMA-Script-Buch nachzulesen!

Bartman
Forum-Meister
Forum-Meister
Beiträge: 2456
Registriert: Do 16. Jul 2009, 21:41
Wohnort: Hessische Provinz

Beitrag von Bartman »

@DerNapster

Du könntest die Liste Deiner Klassenoptionen noch um
captions=tableheading
erweitern und damit den Abstand zwischen der Tabellenbeschriftung und der oberen Linie vergrößern.

Du darfst in Deinem Beispiel statt \ss auch ß schreiben.
\mathbold $ 4,5 \sigma $
Ersetze bitte \textbf durch \mathbold, wenn obiges fettgedruckt werden soll. Der Abstand zwischen dem Komma und der Nachkommastelle lässt sich auf verschiedene Weise beheben:
  • {,}
  • icomma in der Präambel laden
  • \num{4,5} des Pakets siunitx mit weiteren Einstellungen
Zuletzt geändert von Bartman am Do 19. Mai 2016, 15:43, insgesamt 2-mal geändert.

DerNapster
Forum-Newbie
Forum-Newbie
Beiträge: 5
Registriert: Mi 9. Mär 2016, 09:05

Beitrag von DerNapster »

Hallo,

vielen Dank für eure Anmerkungen und Verbesserungen!
Ich bin noch relativ unerfahren in Latex und habe nur Google als Hilfe.

Ich schaue mir beide Tipps mal an!

Viele Grüße,
Christopher

Noch so einer

Beitrag von Noch so einer »

Jeder LaTeX-Anfänger hat außer diverse Einführungen natürlich auch die Paketanleitungen zur Verfügung. Darüber hinaus sei jedem Anfänger eine ausführliche LaTeX-Einführung empfohlen. Ohne diese, nur mit Google wird man nämlich leider allzu häufig Dinge lernen, die man so besser nicht machen sollte. Das Internet strotzt leider nur so vor schlechten LaTeX-Tipps.

Antworten