简而言之:如何将可选参数添加[htbp]
到所有浮动环境?
理想情况下,我不想定义自定义的新环境,而是“使用 hack”添加这些选项,例如\g@addto@macro\@floatboxreset{...}
,可能在序言中或自定义包中(带有\makeatletter
和\makeatother
)。
梅威瑟:
% Instead of this
\documentclass{article}
\usepackage{mwe}
\begin{document}
\begin{figure}[htbp]
\centering
\includegraphics[width=\textwidth]{example-image}
\caption{A dummy image.}
\end{figure}
\end{document}
% Have this
\documentclass{article}
\usepackage{mwe}
\makeatletter
% !!Some command that adds `[htbp]`
% to all float environments
\makeatother
\begin{document}
% Note that `[htbp]` is missing, since it is
% automatically implied.
\begin{figure}
\centering
\includegraphics[width=\textwidth]{example-image}
\caption{A dummy image.}
\end{figure}
\end{document}
答案1
文档类应该定义(可能从另一个已加载的类继承)
\fps@figure
\fps@table
包含默认位置说明符。
您可以在之前添加\begin{document}
,
\makeatletter
\renewcommand{\fps@figure}{htbp}
\renewcommand{\fps@table}{htbp}
\makeatother
输入完这些内容后
\begin{figure}
相当于输入
\begin{figure}[htbp]
(与 相同table
)。你仍然可以通过以下方式覆盖默认值:
\begin{figure}[!hp]
或您需要的任何特定选择。