更改文档中所有浮动元素的浮动状态

更改文档中所有浮动元素的浮动状态

有时在创建文档时使用固定浮点数会更方便(例如从多个 MS Word 文档复制时),这样就不会丢失,然后在最后能够“释放”它们。

我的问题是:“如何实现这一点而不需要在工作结束时手动替换H浮点数的每个规范(假设您在编写文档时使用包及其浮点数规范)。”ht!floatH

我到目前为止的尝试是加载float包并定义两个新命令。

\usepackage{float}
\newcommand{\floatingfloat}{\text{ht!}}
\newcommand{\fixedfloat}{\text{H}}

\begin{document}
    \begin{table}[\fixedfloat]
    \caption {Some caption.}
    \label{tab:1}  
    \begin{center}
    \begin{tabular}{@{}rl@{}}
        \toprule
        Numbers & More umbers
        \midrule
        1 & 5 \\
        2 & 8 \\
        6 & 3 \\
        \bottomrule
    \end{tabular}
    \end{center}
    \end{table}
\end{document}

然而,这会返回一个错误:“未知的浮点选项......”

任何帮助将不胜感激!

答案1

正如 @Zarko 和 @samcarter 指出的那样,有一个简单的方法可以做到这一点:

\usepackage{float}
\makeatletter
\def\fps@figure{H}
\def\fps@table{H}
\makeatother

\begin{document}

    \begin{table}
        \caption {Some caption.}
        \label{tab:1}  
        \begin{center}
        \begin{tabular}{@{}rl@{}}
            .
            .
        \end{tabular}
        \end{center}
    \end{table}

    \begin{figure}
        \centering
        \includegraphics[width=10cm]{"path"}
        \caption{Some caption.}
        \label{fig:1}
    \end{figure}

\end{document}

在实际创建文档时,我们必须在前言中添加 5 行:usepackage{float}, \makeatletter ...以使浮点数“固定”。然后在最后,我们只需Hht!或其他位置规范替换并重新编译即可再次获得“浮动”浮点数。

相关内容