我有一个简单的 LaTeXtabular
表:
\begin{tabular}{|l|l|l|}
\hline
A & B & C \\
\hline
A1 & B1 & C1 \\
\hline
A2 & B2 & C2 \\
\hline
\end{tabular}
现在单元格顶部的填充比底部的填充小得多,我猜是因为保留了降部空间。它使文本看起来不对齐。如何在表格单元格顶部添加一些填充?我试过了,\arraystretch
但它也会在底部添加填充。
答案1
在使用垂直线的同时获得更好看的表格的一种方法是在选定的行中插入“支柱”以改善水平线周围的间距。(这是 Claudio Beccari 在 1993 年发表的一篇文章中提出的TeX 和 TUG 新闻)这个想法是,在上方有 的行中插入“顶部支撑” \hline
,在下方有 的行中插入“底部支撑” ,在上方和下方\hline
都有 的行(例如标题行)中插入顶部和底部支撑:\hline
\documentclass{article}
% Define "struts" as suggested by Claudio Beccari in
% a piece in TeX and TUG News, Vol. 2, 1993.
\newcommand\Tstrut{\rule{0pt}{2.6ex}} % "top" strut
\newcommand\Bstrut{\rule[-0.9ex]{0pt}{0pt}} % "bottom" strut
\newcommand{\TBstrut}{\Tstrut\Bstrut} % top&bottom struts
\begin{document}
\begin{tabular}{|l|l|l|}
\hline
A & B & C \TBstrut\\ % top and bottom struts
\hline
A1 & B1 & C1 \Tstrut\\ % top strut only
A2 & B2 & C2 \Bstrut\\ % bottom strut only
\hline
\end{tabular}
\end{document}
尽管如此,我相信如果 (i) 根本不使用垂直线,并且 (ii) 使用书签包及其命令\toprule
、\midrule
和\bottomrule
代替\hline
来创建水平线。请注意,\[xxx]rule
线条的宽度并不都相同,并且线条周围留有适当的间距。
\documentclass{article}
\usepackage{booktabs}
\begin{document}
\begin{tabular}{lll}
\toprule
A & B & C \\
\midrule
A1 & B1 & C1 \\
A2 & B2 & C2 \\
\bottomrule
\end{tabular}
\end{document}
答案2
\extrarowheight
您可以使用包中的功能在顶部添加额外的垂直间距array
;以下示例提供了三个选项:第一个,您的表格;第二个,相同的表格,但设置\extrarowheight
为2pt
,增加2pt
每一行的高度,但保持深度不变;第三个选项,使用包booktabs
(默认情况下间距现在好多了,但没有垂直规则):
\documentclass{article}
\usepackage{array}
\usepackage{booktabs}
\begin{document}
\noindent\begin{tabular}{|l|l|l|}
\hline
A & B & C \\
\hline
A1 & B1 & C1 \\
\hline
A2 & B2 & C2 \\
\hline
\end{tabular}
\vspace{1cm}
{
\setlength\extrarowheight{2pt}
\noindent\begin{tabular}{|l|l|l|}
\hline
A & B & C \\
\hline
A1 & B1 & C1 \\
\hline
A2 & B2 & C2 \\
\hline
\end{tabular}
}
\vspace{1cm}
\noindent\begin{tabular}{lll}
\toprule
A & B & C \\
\midrule
A1 & B1 & C1 \\
A2 & B2 & C2 \\
\bottomrule
\end{tabular}
\end{document}
答案3
我建议使用cals
软件包,它虽然冗长,但可以自动完成许多事情:
\documentclass{article}
\usepackage{cals}
\begin{document}
\begin{calstable}
\colwidths{{1cm}{1cm}{1cm}}
\brow \cell{A} \cell{B} \cell{C} \erow
\brow \cell{A1}\cell{B1}\cell{C1} \erow
\brow \cell{A2}\cell{B2}\cell{C2} \erow
\end{calstable}
\end{document}