![如何自动在每个部分之前和之后放置 FloatBarrier](https://linux22.com/image/446898/%E5%A6%82%E4%BD%95%E8%87%AA%E5%8A%A8%E5%9C%A8%E6%AF%8F%E4%B8%AA%E9%83%A8%E5%88%86%E4%B9%8B%E5%89%8D%E5%92%8C%E4%B9%8B%E5%90%8E%E6%94%BE%E7%BD%AE%20FloatBarrier.png)
我正在寻找类似的命令:
\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 会按照标题的要求对章节执行操作,但不会自动对小节执行相同的操作,但在较低顺序的标题处强制分页通常是不可取的。