Нумерация разделов, подразделов, подподразделов

Нумерация разделов, подразделов, подподразделов

Я использую класс book, и для каждой главы, раздела, подраздела и т. д. нумерация начинается следующим образом:

Глава 1

Раздел 1.1

Раздел 1.2

Раздел 1.3 . . .

Вместо этого я бы хотел что-то вроде этого:

Глава 1

Раздел 1.0

Раздел 1.1

Раздел 1.2

Есть предложения? Большое спасибо за помощь.

решение1

Вы можете переопределить его \thesectionтак, чтобы он выдавал текущее число минус один.

\documentclass{book}

\makeatletter
\renewcommand{\thesection}{%
  \thechapter.\@arabic{\numexpr\c@section-1}%
}
\makeatother

\begin{document}
\tableofcontents

\chapter{First chapter}

\section{First section}
\section{Second section}
\section{Third section}

\chapter{Second chapter}

\section{First section}
\section{Second section}
\section{Third section}

\end{document}

введите описание изображения здесь

решение2

\chapterвызывает \@chapter, что и происходит \refstepcountermainmatterрежиме) — это означает, что любой счетчик в списке сброса счетчика глав сбрасывается на ноль, это справедливо для счетчика, sectionконечно.

Либо \@chapterпереопределяется, либо можно добавить дополнительный код, который устанавливает счетчик разделов -1после выполнения рефстеппинга.

Обратите внимание: это ненетустановите subsectionсчетчики на -1 и т.д.

\documentclass{book}
\usepackage{xpatch}

\makeatletter
\AtBeginDocument{%
\xpatchcmd{\@chapter}{%
  \refstepcounter{chapter}%
}{%
  \refstepcounter{chapter}%
  \setcounter{section}{-1}%
}{\typeout{Success}}{}
}
\makeatother

\begin{document}
\tableofcontents

\chapter{First chapter}

\section{First section}

\section{Second section}
\section{Third section}

\chapter{Second chapter}

\section{First section}

\section{Second section}

\section{Third section}


\end{document}

введите описание изображения здесь

Вот версия, которая спускается вниз к \subparagraph:

\documentclass{book}
\usepackage{xpatch}

\makeatletter
\xpatchcmd{\@sect}{%
  \refstepcounter{#1}%
}{%
  \refstepcounter{#1}%
  % Now use the \@elt - trick to set all depending counters to -1 (well even that one that shouldn't, most likely :-()
  \def\@elt##1{\setcounter{##1}{-1}}
  \csname cl@#1\endcsname%
}{}{}


\AtBeginDocument{%
  \xpatchcmd{\@chapter}{%
    \refstepcounter{chapter}%
  }{%
    \refstepcounter{chapter}%
    \setcounter{section}{-1}%
   }{\typeout{Success}}{\typeout{Failed!}}
}
\makeatother

\setcounter{tocdepth}{5}
\setcounter{secnumdepth}{5}
\begin{document}
\tableofcontents

\chapter{First chapter}

\section{First section}
\subsection{First subsection}
\subsubsection{First subsubsection}
\paragraph{First paragraph}
\subparagraph{First subparagraph}


\section{Second section}
\subsection{First subsection}
\subsubsection{First subsubsection}
\paragraph{First paragraph}
\subparagraph{First subparagraph}

\section{Third section}

\chapter{Second chapter}

\section{First section}

\section{Second section}

\section{Third section}


\end{document}

решение3

Для каждого раздела можно сделать что-то вроде этого:

\setcounter{section}{-1}

Примечание: изначально я написал \setcounter{section}{0}при ответе.

Связанный контент