我在文档中有几个表格,我想在整个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
定义自己的环境。例如,可以这样定义:table
table
ruledtable
\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