Inhaltsverzeichnis für Chapter, Section UND Subsection

Inhalt, Abbildungen, Tabellen, Quellcodes und andere Verzeichnisse


Besserwisser

Beitrag von Besserwisser »

MatSe hat geschrieben:Das ist mein Beitrag. Ich dachte mir, dass ich mich nochmal in einem anderen Forum umhöre, um eine breitere Masse anzusprechen.
Da solltest Du mal die Forenregeln lesen. Der letzte Punkt von §1 bezieht sich auf das, was Du gemacht hast.

Übrigens solltest Du auch auf mrunix die dortigen Regeln lesen. Dort ist nämlich explizit angegeben, dass man selbst im Falle eines Crossposts auf das andere Forum zu verlinken hat. Du machst Dich also gerade in mehreren Foren unbeliebt. Ob das schlau ist, überlasse ich Deiner eigenen Beurteilung.

Und bevor Du nun eine Diskussion dazu anfängst: Dazu gibt es bereits ausführliche Diskussionen im Diskussions-Unterforum.

BTW: Eine Anleitung, mit der auch Anfänger ein vollständiges Minimalbeispiel erstellen können sollten, findet man unter dem Titel: Was ist ein vollständiges Minimalbeispiel oder kurz VM und wie erstelle ich dieses.

Benutzeravatar
cgnieder
Forum-Meister
Forum-Meister
Beiträge: 730
Registriert: Fr 22. Okt 2010, 18:37
Wohnort: Herrenberg
Kontaktdaten:

Beitrag von cgnieder »

MatSe hat geschrieben:Leider funktionieren die TOC-Befehle nicht, wenn man sich gleichzeitig eigene Ebenen definiert.
Ohne Minimalbeispiel (siehe der Link in besserwissers Post) kann ich nichts dazu sagen.

Das hier funktioniert jedenfalls (Formatierung habe ich weggelassen):
\documentclass{report}
\setcounter{secnumdepth}{3}

\usepackage{etoc}
\newcommand*\chaptertoc{%
  \setcounter{tocdepth}{1}%
  \etocsettocstyle{\section*{Kapitelinhalt}}{}%
  \localtableofcontents
}
\newcommand*\sectiontoc{%
  \setcounter{tocdepth}{2}%
  \etocsettocstyle{\subsection*{Abschnittsinhalt}}{}%
  \localtableofcontents
}
\newcommand*\subsectiontoc{%
  \setcounter{tocdepth}{3}%
  \etocsettocstyle{\subsubsection*{Unterabschnittsinhalt}}{}%
  \localtableofcontents
}
\begin{document}
\tableofcontents

\chapter{Kapitel}
\chaptertoc

\section{Abschnitt}
\sectiontoc

\subsection{Unterabschnitt}
\subsectiontoc

\subsubsection{Unterunterabschnitt}
\subsubsection{Unterunterabschnitt}
\subsubsection{Unterunterabschnitt}

\subsection{Unterabschnitt}

\section{Abschnitt}
\sectiontoc

\subsection{Unterabschnitt}
\subsection{Unterabschnitt}

\end{document}
Grüße
Clemens
Paketauthor

MatSe
Forum-Anfänger
Forum-Anfänger
Beiträge: 10
Registriert: Do 18. Jul 2013, 08:32

Beitrag von MatSe »

Guten Morgen liebe GoLatex-Mitglieder,

vorweg: Ich entschuldige mich für den CrossPost und das Missachten der Boardregeln, das war unnötig.

Da ich das Problem bis jetzt noch nicht lösen konnte, versuche ich, das Problem detaillierter darzustellen.

Wie ich bereits erwähnt hatte, habe ich eine komplexe Kopfzeile gebaut. Diese hat jedoch, soweit ich das beurteilen kann, mit dem eigentlichen Problem nichts zu tun, da dieses auch auftritt, wenn ich sie weglasse.

Um euch trotzdem die Möglichkeit zu geben, sich von dem ganzen mal ein Bild zu machen (eventuell spielt es ja doch eine Rolle), habe ich zwei Minimalbeispiele erstellt.


1.

Hier habe ich mir nur zwei neue Abschnitte (Passage & Subpassage) definiert, die auch in die TOCS mit einfliessen. Das Problem tritt auf, sobald die Zeile

"\usepackage{etoc}"

nicht mehr als Kommentar markiert wird.

Folgender Fehler wird ausgegeben:
"! Missing number, treated as zero.<to be read again>\Etoc@tmp"
\documentclass[headlines=5,headinclude,oneside,ngerman]{scrbook}

\usepackage{blindtext}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Definition des Abschnitts "Passage" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\newcounter {passage}[subparagraph]											
\renewcommand\thepassage{\thesubparagraph.\arabic{passage}}
\makeatletter
\newcommand\passage{\@startsection{passage}{6}{0pt}
  {-3.25ex\@plus -1ex \@minus -.2ex}%
  {-1em}%%
	{\sectfont\footnotesize\itshape}}
\newcommand*\l@passage{\bprot@dottedtocline{6}{14em}{7em}}
\newcommand{\passagemark}[1]{}
\newcommand*\toclevel@passage{6}
\makeatother



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Definition des Abschnitts "Subpassage" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\newcounter {subpassage}[passage]
\renewcommand\thesubpassage{\thepassage.\arabic{subpassage}}
\makeatletter
\newcommand\subpassage{\@startsection{subpassage}{7}{0pt}
  {-3.25ex\@plus -1ex \@minus -.2ex}%
  {-1em}%%
	{\sectfont\footnotesize\itshape}}
\newcommand*\l@subpassage{\bprot@dottedtocline{7}{16em}{8em}}
\newcommand{\subpassagemark}[1]{}

\makeatother

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


%\usepackage{etoc}	                      				

\begin{document}

\chapter[Name des ersten Kapitels]{Name des ersten Kapitels}
\tableofcontents

\section{Name der Section}

\subsection{Name der Subsection}

\subsubsection{Name der Subsubsection}

\paragraph{Name des Paragraphs}

\subparagraph{Name des Subparagraphs}

\passage{Name der Passage}

\subpassage{Name der Subpassage}
\blindtext[2]

\end{document}

2.

Ich weiß nicht, ob man dies als Minimalbeispiel bezeichen kann, ich möchte es trotzdessen einmal anhängen.

Hier ist die komplexe Kopfzeile enthalten und, da es für die Kopfzeile unerlässlich ist, das Umschreiben der Mark-Befehle.

Auch Formatierungsaspekte habe ich gelassen, da sonst alles verrutscht und man sich nicht mehr zurechtfindet.

\documentclass[headlines=5,headinclude,oneside,ngerman]{scrbook}

\usepackage{etex}
\usepackage[demo]{graphicx} 
\usepackage{multirow}  	
\usepackage{array} 
\usepackage{fancyhdr}	 
\usepackage{blindtext}

\usepackage[scaled]{helvet}				% Fuer die Schriftart Helvetica
\renewcommand*\familydefault{\sfdefault} 
\usepackage[T1]{fontenc}	


\usepackage{geometry}
    \geometry{
      a4paper,
      left=27mm,
      right=16mm,
      top=12mm,
      bottom=15mm,
      includeheadfoot,      % Kopfzeile in Satzspiegel einbeziehen
      headheight=164pt,     % Angepasste Höhe der Kopfzeile  
      headsep=25pt
}



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Definition des Abschnitts "Passage" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\newcounter {passage}[subparagraph]											
\renewcommand\thepassage{\thesubparagraph.\arabic{passage}}
\makeatletter
\newcommand\passage{\@startsection{passage}{6}{0pt}
  {-3.25ex\@plus -1ex \@minus -.2ex}%
  {-1em}%%
	{\sectfont\footnotesize\itshape}}
\newcommand*\l@passage{\bprot@dottedtocline{6}{14em}{7em}}
\newcommand{\passagemark}[1]{}
\newcommand*\toclevel@passage{6}
\makeatother



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Definition des Abschnitts "Subpassage" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\newcounter {subpassage}[passage]
\renewcommand\thesubpassage{\thepassage.\arabic{subpassage}}
\makeatletter
\newcommand\subpassage{\@startsection{subpassage}{7}{0pt}
  {-3.25ex\@plus -1ex \@minus -.2ex}%
  {-1em}%%
	{\sectfont\footnotesize\itshape}}
\newcommand*\l@subpassage{\bprot@dottedtocline{7}{16em}{8em}}
\newcommand{\subpassagemark}[1]{}

\makeatother

%%%%%%%%%%%%%%%%%%%%%%%%%%%% E-Tex %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\newmarks\markchapter						
\newmarks\marksection
\newmarks\marksubsection
\newmarks\marksubsubsection
\newmarks\markparagraph
\newmarks\marksubparagraph
\newmarks\markpassage
\newmarks\marksubpassage

\makeatletter
\newcommand*{\markof}[2]{%
  \begingroup
    \let\label\relax \let\index\relax \let\glossary\relax
    \unrestored@protected@xdef\@themark{#2}%
    \@temptokena \expandafter{\@themark}%
    \marks#1{\the\@temptokena}%
  \endgroup
}
\makeatother

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\pagestyle{fancy}   % eigenen Seitenstil definieren
\fancyhf{} % Kopf- und Fusszeile bereinigen
\fancypagestyle{plain}{}% damit auch "plain" Seiten fancy werden   

\chead{%
      \begin{tabular}{| >{\centering}p{3,9cm} | p{8cm}   >{\raggedleft}p{3,4cm} |}
      \hline
 														 &   \bfseries{Teil~~~\botmarks\markchapter}       & \large{\textbf{dummy}}       \tabularnewline
\multirow{2}{*}{\includegraphics[width=39mm]{plank}}     &   \multicolumn{2}{l |}{Kap.\hspace{0,18cm}\botmarks\marksection}     	      \tabularnewline
 														 &   \multicolumn{2}{l |}{\hspace{0,92cm}\botmarks\marksubsection}  	          \tabularnewline 
														 &   \multicolumn{2}{l |}{\hspace{0,92cm}\botmarks\marksubsubsection}             \tabularnewline
										 				 &   \multicolumn{2}{l |}{\hspace{0,92cm}\botmarks\markparagraph}                 \tabularnewline     
														 &   \multicolumn{2}{l |}{\hspace{0,92cm}\botmarks\marksubparagraph}              \tabularnewline																				 		     &   \multicolumn{2}{l |}{\hspace{0,92cm}\botmarks\markpassage}                   \tabularnewline    \cline{2-3}	 
 		\small  12345678910								 &   \multicolumn{1}{c |}{\large{dummy}}           &\large{Seite x von y}         \tabularnewline
\hline
      \end{tabular}%
}
\renewcommand{\arraystretch}{1,5} 
\renewcommand*{\headrulewidth}{0pt}



\newcommand\headernumberwidth{2,5cm}

%%%%%%%%%%%%%%%%%%%%% Umschreiben der Mark-Befehle, noetig fuer die Kopfzeile %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\renewcommand*{\chaptermark}[1]{%
  \markof\markchapter{\noexpand\makebox[\headernumberwidth][l]{\thechapter}#1}%   
  \markof\marksection{}%
  \markof\marksubsection{}%
  \markof\marksubsubsection{}%
  \markof\markparagraph{}%
  \markof\marksubparagraph{}%
  \markof\markpassage{}%
  \markof\marksubpassage{}%
}
\renewcommand*{\sectionmark}[1]{%
  \markof\marksection{\noexpand\makebox[\headernumberwidth][l]{\thesection}#1}%															
  \markof\marksubsection{}%
  \markof\marksubsubsection{}%
  \markof\markparagraph{}%
  \markof\marksubparagraph{}%
  \markof\markpassage{}%
  \markof\marksubpassage{}%
}
\renewcommand*{\subsectionmark}[1]{%
  \markof\marksubsection{\noexpand\makebox[\headernumberwidth][l]{\thesubsection}#1}%     
  \markof\marksubsubsection{}%
  \markof\markparagraph{}%
  \markof\marksubparagraph{}%
  \markof\markpassage{}%
  \markof\marksubpassage{}%
}
\renewcommand*{\subsubsectionmark}[1]{%
  \markof\marksubsubsection{\noexpand\makebox[\headernumberwidth][l]{\thesubsubsection}#1}%
  \markof\markparagraph{}%
  \markof\marksubparagraph{}%
  \markof\markpassage{}%
  \markof\marksubpassage{}%
}
\renewcommand*{\paragraphmark}[1]{%
  \markof\markparagraph{\noexpand\makebox[\headernumberwidth][l]{\theparagraph}#1}%
  \markof\marksubparagraph{}%
  \markof\markpassage{}%
  \markof\marksubpassage{}%
}
\renewcommand*{\subparagraphmark}[1]{%
  \markof\marksubparagraph{\noexpand\makebox[\headernumberwidth][l]{\thesubparagraph}#1}%
  \markof\markpassage{}%
  \markof\marksubpassage{}%
}
\renewcommand*{\passagemark}[1]{%
  \markof\markpassage{\noexpand\makebox[\headernumberwidth][l]{\thepassage}#1}%
  \markof\marksubpassage{}%
}
\renewcommand*{\subpassagemark}[1]{%
  \markof\marksubpassage{\noexpand\makebox[\headernumberwidth][l]{\thesubpassage}#1}% 
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%\usepackage{etoc}

\begin{document}

\chapter[Name des ersten Kapitels]{Name des ersten Kapitels}
\tableofcontents

\section{Name der Section}
\subsection{Name der Subsection}
\subsubsection{Name der Subsubsection}
\paragraph{Name des Paragraphs}
\subparagraph{Name des Subparagraphs}
\passage{Name der Passage}
\subpassage{Name der Subpassage}
\blindtext[2]

\end{document}


Sobald ich die beiden selbst erstellten Abschnitte aus meinem Code rauslasse, funktioniert Etoc ohne Probleme. Nur leider brauche ich diese und kann unter keinen Umständen darauf verzichten. Die Etoc Doku sagt folgendes:
etoc can not really cohabit with packages modifying the \tableofcontents command
Leider finde ich keinen Ansatz, dieses Problem zu umgehen.
Was mir jedoch aufgefallen ist, ist das der Code zumindest kompilierbar ist, sobald ich folgende Zeile einfüge:

"\setcounter{tocdepth}{-2}"

Nur ergibt dies jedoch keinen Sinn.

Ich hoffe, dass das Minimalbeispiel das Problem verdeutlicht und eventuell jemand einen Ansatz hat, das Problem zu lösen.

Bitte seid nachsichtig, ich bin ein Latex-Anfänger und kann nicht dafür garantieren, dass der Code optimal ist oder allen üblichen Konditionen entspricht.

Lieben Gruß
Matse

Besserwisser

Beitrag von Besserwisser »

Warum steht wohl in der etoc-Anleitung, dass man die Ebenen neue Gliederungsbefehle mit \etocsetlevel etoc bekannt machen muss, also beispielsweise
\etocsetlevel{passage}{6}
\etocsetlevel{subpassage}{7}
Siehe auch die weiteren Einstellungen, die man für Ebenen treffen kann und sollte.

BTW: Der Status Rückfrage ist IMHO nur sinnvoll, solange ein Fragesteller eine ihm gestellte Frage nicht beantwortet hat.

Antworten