Como o titlesec chama o sectionbreak implicitamente?

Como o titlesec chama o sectionbreak implicitamente?

Como titlesecfunciona o pacote? Nunca chamei \sectionbreakexplicitamente em meu código, mas parece que \sectionbreaké chamado entre\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}

Responder1

De acordo com a página 8 dotítulosecmanual, \sectionbreaké aplicado após cada comando de seção. Se você percorrer o código do pacote, em titlesec.sty, encontrará duas instâncias de:

\@ifundefined{#6break}%
  {\addpenalty{\@secpenalty}}%
  {\csname#6break\endcsname}%

Aqui, #6o nome do comando de seccionamento, então um de section, subsection, subsubsectionou . No caso especial quando o código acima diz:paragraphsubparagraph#6section

se sectionbreaknão estiver definido, adicione uma \@secpenaltypenalidade e, se estiver definido, adicione\sectionbreak

Se você quiser ver isso acontecendo ao compilar seu arquivo, por exemplo, você pode adicionar \typeout{Adding a section break!!!}à definição do \sectionbreakcomando (veja abaixo) e então olhar no arquivo de log - em compile o arquivo no terminal e veja o saída.

\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}

informação relacionada