Inhaltsverzeichnis für Chapter, Section UND Subsection

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: Inhaltsverzeichnis für Chapter, Section UND Subsection

von Besserwisser » Mo 29. Jul 2013, 12:38

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.

von MatSe » Mo 29. Jul 2013, 11:38

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

von cgnieder » Do 18. Jul 2013, 22:28

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

von Besserwisser » Do 18. Jul 2013, 21:49

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.

von Epllus » Do 18. Jul 2013, 19:30

Ohne Minimalbeispiel ist es recht schwer etwas genaues zu sagen.

Ein weiteres Paket, dass du benutzen könntest wäre scrwfile (Doku im scrguide).

von MatSe » Do 18. Jul 2013, 14:06

Okay, da hab ich wohl beim Durchforsten der Etoc-Doku etwas übersehen.

Leider funktionieren die TOC-Befehle nicht, wenn man sich gleichzeitig eigene Ebenen definiert.

Die Doku sagt dazu folgendes:

"etoc can not really cohabit with packages modifying the \tableofcontents command:
some sort of truce can be achieved if etoc is loaded last, hence is the winner."

von MatSe » Do 18. Jul 2013, 13:23

Ja, das kann passieren.

Beispielsweise so:
 

chapter 1
-----
1.1 section
1.2 section
-----

1.1 section
-----
1.1.1 subsection
1.1.2 subsection
-----

1.1.1 subsection
-----
1.1.1.1 subsubsection
1.1.1.2 subsubsection
1.1.1.3 subsubsection
-----

1.1.1.1 subsubsection

Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy
eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam
voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita
kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem
ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod
tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At
vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd
gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.

von cgnieder » Do 18. Jul 2013, 12:10

Nur um es wirklich zu verstehen: man stößt also als Leser u.U. auf drei, vier ... Inhaltsverzeichnisse nacheinander, bevor der Text kommt? In dieser Art etwa:
chapter 1
-----
1.1 section
1.1.1 subsection
1.1.1.1 subsubsection
1.1.1.2 subsubsection
1.1.1.3 subsubsection
1.1.2 subsection
1.2 section
1.2.1 subsection
1.2.2 subsection
-----

1.1 section
-----
1.1.1 subsection
1.1.1.1 subsubsection
1.1.1.2 subsubsection
1.1.1.3 subsubsection
1.1.2 subsection
-----

1.1.1 subsection
-----
1.1.1.1 subsubsection
1.1.1.2 subsubsection
1.1.1.3 subsubsection
-----

1.1.1.1 subsubsection

Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy
eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam
voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita
kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem
ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod
tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At
vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd
gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
Grüße

von MatSe » Do 18. Jul 2013, 12:03

Zu cgnieder's Frage:

Ja, so in etwa soll das ganze aussehen. Jedes mal, wenn ein Abschnitt wieder in Unterabschnitte unterteilt wird, so soll am Anfang ein Inhaltsverzeichnis stehen. Eventuell sollen Ausnahmen bei den tiefsten Ebenen gemacht werden, aber generell ist dies das Ziel.

Re: Inhaltsverzeichnis für Chapter, Section UND Subsection

von u_fischer » Do 18. Jul 2013, 10:31

MatSe hat geschrieben: Etoc: Bietet, soweit ich das aus der Doku hab lesen können, nur die Möglichkeit das normale TOC anzupassen.
Nun ja, in meiner Version der Dokumentation steht auf Seite 1 im Abstrakt:

"The \tableofcontents command may be used arbitrarily many times and it has a variant \localtableofcontents which prints tables of contents ‘local’ to the current surrounding document unit."

Abgesehen davon gilt auch hier, dass was ich dir zu deiner ersten Frage schrieb: Wenn du ein komplexes Problem hast, solltest du dir schon etwas mehr Mühe mit der Frage geben und nicht darauf warten, dass irgendjemand Anderes ein Testdokument zusammenstellt.

Nach oben