Erste Version

Erste Version

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 demtitlesecPaket 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 \chapterabwärts um eins abgenommen hat: d. h. \parthat Ebene -1, hat Ebene , \subparthat Ebene 0, \chapterhat Ebene 1, \sectionhat Ebene 2, \subsectionhat Ebene 3, und so weiter.

Antwort2

Die Antwort von Gonzalo Medina ist nett. Ich möchte sie jedoch ergänzen durch

  1. titletoczeigt, wie Sie das Paket zum Umgang mit dem Inhaltsverzeichnis verwenden können , und

  2. zeigt, 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:

Beispielunterteil

mit

Beispiel-Inhaltsverzeichnis

\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 subpartals Unterteilung direkt darunter part(und damit darüber chapter) 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:

Neues Beispielunterteil

mit

Neues Musterinhaltsverzeichnis

\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 subpartZähler wird nun zurückgesetzt bei jedempart
  • der chapterZähler wird bei jedem Unterabschnitt zurückgesetzt ( \numberwithinhierfür wurde das aus den AMS-Paketen verwendete Material verwendet)
  • \thesubpartdruckt jetzt auch die Teilenummer
  • Die Formatierung des Inhaltsverzeichnisses für untergeordnete Ebenen wird ebenfalls neu definiert, um Platz für die Beschriftungen zu schaffen.

verwandte Informationen