titlesec은 어떻게 암시적으로 sectionbreak를 호출합니까?

titlesec은 어떻게 암시적으로 sectionbreak를 호출합니까?

패키지는 어떻게 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입니다 . 위의 코드는 특별한 경우에 다음과 같이 말합니다 .paragraphsubparagraph#6section

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}

관련 정보