避免在每个表中重复 [hbt] 和 \centering

避免在每个表中重复 [hbt] 和 \centering

在我正在撰写的文档中,我使用熟悉的[hbt]我的浮动桌子的选项,我中心它们。我想避免每次创建表时都重复这一点。我认为在序言中添加一些内容很容易,以确保每次开始新table环境时都使用这两个选项?

\documentclass{article}
\begin{document}
\begin{table}[hbt]
\centering
\begin{tabular}{*3{l}}
1 & 2 & 3\\
a & b & c\\
\end{tabular}
\end{table}
\end{document}

答案1

可以使用以下方式设置默认图形位置

\makeatletter
\renewcommand\fps@figure{htbp}
\makeatletter

p(不将其包含在默认值中几乎总是一个坏主意)

为了居中,你可以将其添加到\@floatboxreset

\makeatletter
\def \@floatboxreset {%
        \reset@font
        \normalsize
        \@setminipage
\centering%<<<<<<<<<<<<<<<<<<<
}
\makeatletter

答案2

float包裹提供一个接口来指定特定浮动的位置,使用

\floatplacement{<type>}{<spec>}

\floatplacement命令重置浮点数类的默认放置说明符。因此,可以使用

\floatplacement{table}{hbt}

去实现你的追求。

答案3

尝试

\documentclass{article}

\newenvironment{mytable}
{\begin{table}[hbt]
  \centering}
{\end{table}}

\begin{document}

\begin{mytable}
\begin{tabular}{*3{l}}
1 & 2 & 3\\
a & b & c\\
\end{tabular}
\end{mytable}
\end{document}

\end{document}

答案4

结合 Werner 的回答在这里齐步走回答如何让图像自动居中?,我们可以这样做:

\documentclass{article}
\usepackage{floatrow} % this automatically centers all floats
    \floatplacement{table}{hbtp} % all tables are given the [hbtp] option
\begin{document}
\begin{table}
\begin{tabular}{*3{l}}
1 & 2 & 3\\
a & b & c\\
\end{tabular}
\end{table}
\end{document}

相关内容