例如,是否可以将表格的第一行与其他行的对齐方式不同?也许有办法将两个表格合并成一个表格?MWE:
\documentclass{article}
\begin{document}
\begin{table}
\begin{tabular}{| c | c | c | c |}
\hline
& \textbf{S1} & \textbf{S2} & \textbf{S3} \\
\hline
\textbf{D1} & 4217 & 5821 & 1102 \\
\textbf{D2} & 3679 & 5089 & 991 \\
\textbf{D3} & 2589 & 3301 & 604 \\
\textbf{D4} & 1418 & 1722 & 294 \\
\hline
\end{tabular}
\end{table}
\end{document}
答案1
对齐小表格标题行的标准方法是使用命令\multicolumn
,该命令允许您覆盖每行跨度的列规范。在此示例中,我使用了包booktabs
,对于任何专业的表格来说,它都是强烈推荐的。
\documentclass{article}
\usepackage{booktabs}
\begin{document}
\begin{tabular}{lrp{1in}}
\toprule
\multicolumn{1}{c}{A} & \multicolumn{1}{c}{B} & \multicolumn{1}{c}{C}\\
\midrule
left & right & 1 inch\\
l & r & foo\\
\bottomrule
\end{tabular}
\end{document}
有关标题行的一些更奇特的想法,请参阅将表格第一行全部设为粗体。
答案2
这与发布的内容略有不同将表格第一行全部设为粗体。
tabular
环境是容易地按列格式化。按行格式化则不然。不过,还是有办法解决的。下面是一次尝试。
您可以使用\if...
条件来区分标题行和非标题行。\newif\headerrow
定义条件\ifheaderrow
,该条件可以为真 ( \headerrowtrue
) 或假 ( \headerrowfalse
)。随后,您可以根据此条件借助array
包裹:
\documentclass{article}
\usepackage{array}% http://ctan.org/pkg/array
\newif\ifheaderrow
\newcolumntype{C}{>{\ifheaderrow\bfseries\fi}c}
\begin{document}
\begin{table}
\global\headerrowtrue
\begin{tabular}{|>{\bfseries}c | *{3}{C|}}
\hline
& S1 & S2 & S3 \\
\hline \global\headerrowfalse
D1 & 4217 & 5821 & 1102 \\
D2 & 3679 & 5089 & 991 \\
D3 & 2589 & 3301 & 604 \\
D4 & 1418 & 1722 & 294 \\
\hline
\end{tabular}
\end{table}
\end{document}
\headerrowfalse
必须重置\global
,因为否则修改只会在组内(即调用它的单元格内)有效。
答案3
十一年后……
- 通过使用
makecell
包:
\documentclass{article}
\usepackage{booktabs,
makecell} % for `thead` command
\renewcommand\theadfont{}
\begin{document}
\begin{tabular}{lrp{1in}}
\toprule
\thead{A} & \thead{B} & \thead{C}\\
\midrule
left & right & 1 inch\\
l & r & foo\\
\bottomrule
\end{tabular}
\end{document}
或者
\documentclass{article}
\usepackage{booktabs,
makecell}
\renewcommand\theadfont{\normalsize\bfseries}
\begin{document}
\begin{tabular}{lrp{1in}}
\toprule
\thead{A} & \thead{B} & \thead{C}\\
\midrule
left & right & 1 inch\\
l & r & foo\\
\bottomrule
\end{tabular}
\end{document}
- 今天有人给我考虑新颖的表格包
tabularray
:
\documentclass{article}
\usepackage{tabularray}
\UseTblrLibrary{booktabs}
\begin{document}
\begin{tblr}{colspec = {l r Q[l, wd=1in]},
row{1} = {c, font=\bfseries}
}
\toprule
A & B & C \\
\midrule
left & right & 1 inch \\
l & r & foo \\
\bottomrule
\end{tblr}
\end{document}
结果与第二个示例相同。