
Я использую класс 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
, что и происходит \refstepcounter
(в mainmatter
режиме) — это означает, что любой счетчик в списке сброса счетчика глав сбрасывается на ноль, это справедливо для счетчика, 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}
при ответе.