
Ich brauche einen Abschnitt, der weder ein Teil noch ein Kapitel ist. Daher habe ich versucht, einen neuen Befehl, \subpart, zu definieren, der auf dem Befehl \part basiert, aber eine eigene Nummerierung hat und in der Mitte einer neuen leeren Seite so aussehen würde:
UNTERTEIL EINS
Name des Unterteils
Wenn ich dies jedoch versuche, werden immer Fehler angezeigt …
Mein Ansatz, basierend auf dem Code von I-dont-remember-where im Web:
\makeatletter
\def\@subpart[#1]{%
\ifnum \c@secnumdepth >\m@ne
\refstepcounter{subpart}%
\addcontentsline{toc}{subpart}{\thepart\hspace{1em}#1}%
\else
\addcontentsline{toc}{subpart}{#1}%
\fi
{\parindent \z@ %\raggedright % Commented \raggedright
\interlinepenalty \@M
\normalfont
\ifnum \c@secnumdepth >\m@ne
\Large\bfseries\hfil\partname~\thepart\hfil % added \hfil … \hfil for centering
\par\nobreak
\fi
\huge \bfseries %
\markboth{}{}\par}%
\nobreak
\vskip 3ex
\@afterheading}
\makeatother
Ich sollte wirklich lernen, LaTeX richtig zu verwenden …
Vielen Dank für deine Hilfe,
Sebastian
Antwort1
Die Definition einer komplett neuen Sektionseinheit ist keine einfache Angelegenheit. Mit demtitlesec
Paket kann die Arbeit erleichtern; da Du keine Angaben dazu gemacht hast, wie die Einträge für die Unterteile im Inhaltsverzeichnis aussehen sollen, habe ich mich für einen Stil zwischen dem für Teile und dem für Kapitel entschieden; diese Neudefinition kannst Du dann entsprechend ändern \l@subpart
:
\documentclass{book}
\usepackage[explicit]{titlesec}
\usepackage{tocloft}
\usepackage{lipsum}
\usepackage{fmtcount}
\newcommand\subpartname{Subpart}
\titleclass{\subpart}{top}[\part]
\newcounter{subpart}
\renewcommand\thesubpart{\Numberstring{subpart}}
\makeatletter
\titleformat{\subpart}[display]
{\normalsize\Huge\filcenter}{\scshape\subpartname~\thesubpart}{1em}{{\bfseries#1}\iftitlemeasuring{\def\ttl@endlongest{\clearpage}}{}}
\titlespacing*{\subpart}
{0pt}{0em}{\pagetotal}
\makeatother
\newcommand\subpartautorefname{\subpartname}
\newcommand\subpartbreak{\cleardoublepage\mbox{}\vfil}
\assignpagestyle{\subpart}{plain}
\makeatletter
\def\toclevel@subpart{0}
\newcommand*\l@subpart[2]{%
\ifnum \c@tocdepth >-2\relax
\addpenalty{-\@highpenalty}%
\addvspace{1em \@plus\p@}%
\setlength\@tempdima{3.5em}%
\begingroup
\parindent \z@ \rightskip \@pnumwidth
\parfillskip -\@pnumwidth
{\leavevmode
\large\bfseries\subpartname~#1\hfil\hb@xt@\@pnumwidth{\hss #2}}\par
\nobreak
\global\@nobreaktrue
\everypar{\global\@nobreakfalse\everypar{}}%
\endgroup
\fi}
\makeatother
\begin{document}
\tableofcontents
\part{Test Part One}
\subpart{Test Subpart One}
\chapter{Test Chapter One}
\section{Test Section}
\subpart{Test Subpart Two}
\chapter{Test Chapter Two}
\section{Test Section}
\end{document}
Bedenken Sie, dass jetzt die Ebene der Abschnittseinheiten von \chapter
abwärts um eins abgenommen hat: d. h. \part
hat Ebene -1
, hat Ebene , \subpart
hat Ebene 0
, \chapter
hat Ebene 1
, \section
hat Ebene 2
, \subsection
hat Ebene 3
, und so weiter.
Antwort2
Die Antwort von Gonzalo Medina ist nett. Ich möchte sie jedoch ergänzen durch
titletoc
zeigt, wie Sie das Paket zum Umgang mit dem Inhaltsverzeichnis verwenden können , undzeigt, wie das Nummerierungsschema geändert werden kann, sodass Unterteile und Kapitel die Zähler höherer Ebene enthalten.
Erste Version
Ich füge nur hinzu titletoc
:
mit
\documentclass{book}
\usepackage[newparttoc]{titlesec}
\usepackage{titletoc}
\titleformat{\part}[display]{\normalfont\Huge\bfseries}%
{\partname~\thepart}{1pc}{\Huge\bfseries}
\titleclass{\subpart}{page}[\part]
\newcounter{subpart}
\renewcommand{\thesubpart}{\Alph{subpart}}
\newcommand{\subpartname}{Subpart}
\titleformat{\subpart}[display]{\normalfont\Large\bfseries}%
{\subpartname~\thesubpart}{1pc}{\Huge\bfseries}
\titlespacing{\subpart}{0pt}{0pt}{0pt}
\titlecontents{subpart}[0pt]{\addvspace{1pc}\normalfont\bfseries}%
{\thecontentslabel\enspace ---\enspace\large}%
{\normalfont\large\bfseries}{\hspace{2em plus 1fill}\large\contentspage}
\begin{document}
\tableofcontents
\part{Part One}
\subpart{First Subpart}
\chapter{A chapter}
\subpart{Second Subpart}
\chapter{Another chapter}
\section{Testing}
\section{TT}
\part{Part Two}
\subpart{First Subpart}
\chapter{A chapter}
\subpart{Second Subpart}
\chapter{Another chapter}
\end{document}
Das Wichtigste, was oben zu beachten ist, ist, dass neu definiert werden muss part
, damit die Inhaltsverzeichnisfunktionen funktionieren. Der Code dann
- richtet sich
subpart
als Unterteilung direkt darunterpart
(und damit darüberchapter
) ein, - definiert den entsprechenden Zähler und die Art und Weise wie dieser ausgedruckt wird (
\thesubpart
) - führt eine Zeichenfolge für den Unterteilnamen ein
- richtet den Ausdruck der Unterteiltitel als angezeigten (also zentrierten) Block ein
- definiert die Formatierung für das Inhaltsverzeichnis
Zweite Version
Mit Unternummerierung:
mit
\documentclass{book}
\usepackage[newparttoc]{titlesec}
\usepackage{titletoc}
\usepackage{amsmath}
\titleformat{\part}[display]{\normalfont\Huge\bfseries}%
{\partname~\thepart}{1pc}{\Huge\bfseries}
\titleclass{\subpart}{page}[\part]
\newcounter{subpart}[part]
\numberwithin{chapter}{subpart}
\renewcommand{\thesubpart}{\thepart-\Alph{subpart}}
\newcommand{\subpartname}{Subpart}
\titleformat{\subpart}[display]{\normalfont\Large\bfseries}%
{\subpartname~\thesubpart}{1pc}{\Huge\bfseries}
\titlespacing{\subpart}{0pt}{0pt}{0pt}
\titlecontents{subpart}[0pt]{\addvspace{1pc}\normalfont\bfseries}%
{\thecontentslabel\enspace ---\enspace\large}%
{\normalfont\large\bfseries}{\hspace{2em plus 1fill}\large\contentspage}
\titlecontents{chapter}[0pt]{\addvspace{0.5pc}\normalfont\bfseries}%
{\thecontentslabel\enspace}{}{\hspace{2em plus 1fill}\contentspage}
\dottedcontents{section}[6em]{}{4em}{1pc}
\begin{document}
\tableofcontents
\part{Part One}
\subpart{First Subpart}
\chapter{A chapter}
\subpart{Second Subpart}
\chapter{Another chapter}
\section{Testing}
\section{TT}
\part{Part Two}
\subpart{First Subpart}
\chapter{A chapter}
\subpart{Second Subpart}
\chapter{Another chapter}
\end{document}
In diesem Fall ist der Code derselbe, außer
- Der
subpart
Zähler wird nun zurückgesetzt bei jedempart
- der
chapter
Zähler wird bei jedem Unterabschnitt zurückgesetzt (\numberwithin
hierfür wurde das aus den AMS-Paketen verwendete Material verwendet) \thesubpart
druckt jetzt auch die Teilenummer- Die Formatierung des Inhaltsverzeichnisses für untergeordnete Ebenen wird ebenfalls neu definiert, um Platz für die Beschriftungen zu schaffen.