如何创建比文档部分更高级别的深度

如何创建比文档部分更高级别的深度

我以部分/章节/节的形式组织我的书,但现在我需要创建一个更高的部分,因此文档的组织方式将如下,更高部分/部分/章节/节。

使用本文的术语:https://www.overleaf.com/learn/latex/sections_and_chapters作为文档章节中 -1 级别的部分,我需要一个 -2 级别的部分,并且目录中还具有以下所有功能。

我怎样才能做到这一点?

答案1

我们假设您的新部门单位名为book

\part您可以复制所有相关的组件book.cls并将对 的任何引用更改为partbook并定义适当的book定义(如计数器及其表示)。更具体地说,您需要

  • 复制并更新\part
  • 复制并更新\@part
  • 复制并更新\@spart
  • 复制并更新\@endpart
  • 复制并更新\l@part
  • 创建book计数器
  • 更新\thebook以满足您的需求
  • 创建\bookname(作为和\partname内的对应部分)\@part\@spart

在此处输入图片描述

\documentclass{book}

% Taken from book.cls:
% https://www.tug.org/svn/texlive/trunk/Master/texmf-dist/tex/latex/base/book.cls?view=co
\makeatletter
\newcommand\book{%   <------------- change
  \if@openright
    \cleardoublepage
  \else
    \clearpage
  \fi
  \thispagestyle{plain}%
  \if@twocolumn
    \onecolumn
    \@tempswatrue
  \else
    \@tempswafalse
  \fi
  \null\vfil
  \secdef\@book\@sbook}%   <------------- change

\def\@book[#1]#2{%   <------------- change
    \ifnum \c@secnumdepth >-3\relax%   <------------- change
      \refstepcounter{book}%   <------------- change
      \addcontentsline{toc}{book}{\thebook\hspace{1em}#1}%   <------------- change
    \else
      \addcontentsline{toc}{book}{#1}%   <------------- change
    \fi
    \markboth{}{}%
    {\centering
     \interlinepenalty \@M
     \normalfont
     \ifnum \c@secnumdepth >-2\relax
       \huge\bfseries \bookname\nobreakspace\thebook%   <------------- change
       \par
       \vskip 20\p@
     \fi
     \Huge \bfseries #2\par}%
    \@endbook}%   <------------- change
\def\@sbook#1{%   <------------- change
    {\centering
     \interlinepenalty \@M
     \normalfont
     \Huge \bfseries #1\par}%
    \@endbook}%   <------------- change
\def\@endbook{\vfil\newpage%   <------------- change
              \if@twoside
               \if@openright
                \null
                \thispagestyle{empty}%
                \newpage
               \fi
              \fi
              \if@tempswa
                \twocolumn
              \fi}
\newcommand*\l@book[2]{%   <------------- change
  \ifnum \c@tocdepth >-3\relax%   <------------- change
    \addpenalty{-\@highpenalty}%
    \addvspace{2.25em \@plus\p@}%
    \setlength\@tempdima{3em}%
    \begingroup
      \parindent \z@ \rightskip \@pnumwidth
      \parfillskip -\@pnumwidth
      {\leavevmode
       \large \bfseries #1\hfil
       \hb@xt@\@pnumwidth{\hss #2%
                          \kern-\p@\kern\p@}}\par
       \nobreak
         \global\@nobreaktrue
         \everypar{\global\@nobreakfalse\everypar{}}%
    \endgroup
  \fi}
\makeatother

% Default additions for new sectional unit \book
\newcounter{book}
\renewcommand{\thebook}{\Roman{book}}
\newcommand{\bookname}{Book}

\begin{document}

\tableofcontents

\book{A book}

\part{A part}

\chapter{A chapter}

\section{A section}

\subsection{A subsection}

\end{document}

您必须调整目录book以及主文档中元素的呈现方式以满足您的需要。

注意memoir已经book以与我上面所做的类似的方式定义了部分单位/级别。

答案2

该类memoir(的超集)有 8 个部门级别,book范围从\book、、到。part\chapter\subparagraph

相关内容