包是如何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
在每个 section 命令之后应用。如果您仔细查看包代码,在 中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}