
Как работает package titlesec
? Я никогда не вызывал его \sectionbreak
явно в своем коде, но, похоже, \sectionbreak
он вызывается между\section
\documentclass[fleqn]{report}
\usepackage{titlesec}
\newcommand{\sectionbreak}{\clearpage \setcounter{equation}{0}}
\begin{document}
\section{One}
\begin{equation} 2+2=3.99 \end{equation}
\begin{equation} \pi^2=9.86 \end{equation}
\section{Two}
\begin{equation} E=mc^2 \end{equation}
\begin{equation} v=\frac{e}{t} \end{equation}
\subsection{Two \& One}
\begin{equation} 2+2=22 \end{equation}
\end{document}
решение1
Согласно странице 8 пфтитулсекmanual, \sectionbreak
применяется после каждой команды раздела. Если вы просмотрите код пакета, в titlesec.sty
, то вы найдете два экземпляра:
\@ifundefined{#6break}%
{\addpenalty{\@secpenalty}}%
{\csname#6break\endcsname}%
Здесь #6
имя команды секционирования, поэтому одно из section
, subsection
, subsubsection
, paragraph
или subparagraph
. В особом случае, когда #6
это section
код выше говорит:
если
sectionbreak
не определено, то добавьте\@secpenalty
штраф, а если определено, то добавьте\sectionbreak
Если вы хотите увидеть, как это происходит при компиляции файла, то, например, вы можете добавить \typeout{Adding a section break!!!}
определение команды \sectionbreak
(см. ниже), а затем посмотреть в файл журнала — скомпилируйте файл в терминале и посмотрите на вывод.
\documentclass[fleqn]{report}
\usepackage{titlesec}
\newcommand{\sectionbreak}{\clearpage \setcounter{equation}{0}\typeout{Adding a section break!!!}}
\begin{document}
\section{One}
\begin{equation} 2+2=3.99 \end{equation}
\begin{equation} \pi^2=9.86 \end{equation}
\section{Two}
\begin{equation} E=mc^2 \end{equation}
\begin{equation} v=\frac{e}{t} \end{equation}
\subsection{Two \& One}
\begin{equation} 2+2=22 \end{equation}
\end{document}