如何自动在每个部分之前和之后放置 FloatBarrier

如何自动在每个部分之前和之后放置 FloatBarrier

我正在寻找类似的命令:

\alwaysFloatBarrier

这样,每当我写一个正常的章节或小节或小子节时:

\section{Example 1}

\subsection{Example 2}

\subsubsection{Example 3}

它们会自动转换为:

\FloatBarrier
\section{Example 1}
\FloatBarrier

\FloatBarrier
\subsection{Example 2}
\FloatBarrier

\FloatBarrier
\subsubsection{Example 3}
\FloatBarrier

答案1

您可以通过加载placeins包(用于\FloatBarrier宏)以及etoolbox包(用于\pretocmd 宏)并发出指令来实现您的目标

\pretocmd{\section}{\FloatBarrier}{}{}
\pretocmd{\subsection}{\FloatBarrier}{}{}
\pretocmd{\subsubsection}{\FloatBarrier}{}{}

在序言中。如果你需要以宏形式实现,你可以这样写

\newcommand\alwaysFloatBarrier{%
   \pretocmd{\section}{\FloatBarrier}{}{}%
   \pretocmd{\subsection}{\FloatBarrier}{}{}%
   \pretocmd{\subsubsection}{\FloatBarrier}{}{}%
}

然后发出指令\alwaysFloatBarrier

答案2

你没有说,但我认为你的意思是来自placeins包的命令,在这种情况下,\usepackage[section]{placeins}它会满足你的需要。

lat 会按照标题的要求对章节执行操作,但不会自动对小节执行相同的操作,但在较低顺序的标题处强制分页通常是不可取的。

相关内容