如何在整个表格环境上方和下方创建水平线?

如何在整个表格环境上方和下方创建水平线?

我在文档中有几个表格,我想在整个table环境的上方和下方添加一条横线。我可以获得所需的输出\hrule和一些额外的间距,但我希望能够定义一种格式来执行此操作以用于所有表格,而不是手动添加线条。这是我所需输出的一个示例:

\documentclass{article}

\usepackage[tableposition=top]{caption}
\usepackage{float}
\floatstyle{plaintop}
\restylefloat{table}

\begin{document}

text
\vspace{5mm}\hrule
\begin{table}[H]
    \centering
    \begin{tabular}{c|c}
        a & a\\
        a & a
    \end{tabular}
    \caption{something}
    \label{something}
\end{table}
\hrule\vspace{5mm}
text

\end{document}

谢谢

编辑:此外,是否有办法根据以下内容是文本还是公式来更改间距?如果我在表格正上方或正下方有一个公式而不是文本,我会删除相应的\vspace{5mm}

答案1

使用该包,您可以根据原始环境以及所需的附加内容environ定义自己的环境。例如,可以这样定义:tabletableruledtable

\NewEnviron{ruledtable}{%
\par\addvspace{5mm}\hrule
\begin{table}[!h]\BODY\end{table}
\hrule\addvspace{5mm}
}

在这种情况下,您只会将\begin{table} .. \end{table}文本中的所有实例更改为新的,\begin{ruledtable} .. \end{ruledtable}而无需任何额外的手动修改。

\documentclass{article}
\usepackage[tableposition=top]{caption}
\usepackage{float}
\floatstyle{plaintop}
\restylefloat{table}
\usepackage{environ}

\NewEnviron{ruledtable}{%
\par\addvspace{5mm}\hrule
\begin{table}[!h]\BODY\end{table}
\hrule\addvspace{5mm}
}

\begin{document}

text
\begin{ruledtable}
    \centering
    \begin{tabular}{c|c}
        a & a\\
        a & a
    \end{tabular}
    \caption{something}
    \label{something}
\end{ruledtable}
text


\begin{equation}
x + y = 5
\end{equation}
\begin{ruledtable}
    \centering
    \begin{tabular}{c|c}
        a & a\\
        a & a
    \end{tabular}
    \caption{something2}
    \label{something2}
\end{ruledtable}
\begin{equation}
x + y = 5
\end{equation}

\end{document}

答案2

使用booktabs 包中的表格中的\toprule和命令。看起来非常干净\bottomrule

相关内容