我有一个简单的表格:
\begin{table}[H]
\renewcommand{\arraystretch}{1.3}
\centering
\caption{Add caption}
\begin{tabular}{|c|c|c|c|c|c|}
\hline
\multirow{2}{*}{nr fragmentu} & \multicolumn{3}{c|}{wymiary [cm]} & \multicolumn{2}{c|}{wymiary fragmentu} \\
\cmidrule{2-6} \multicolumn{1}{|c|}{} & \multicolumn{1}{c|}{dł.} & \multicolumn{1}{c|}{szer.} & \multicolumn{1}{c|}{powierzchnia} & \multicolumn{1}{c|}{dł.} & \multicolumn{1}{c|}{szer.} \\
\hline
1 & 6,8 & 4,9 & 33,6 & 7,0 & 11,8 \\
2 & 4,8 & 3,4 & 16,1 & 10,0 & 4,5 \\
3 & 3,4 & 2,4 & 7,9 & 6,5 & 3,5 \\
4 & 7,8 & 5,5 & 43,3 & 12,5 & 10,1 \\
5 & 4,8 & 3,4 & 16,4 & 9,7 & 4,9 \\
6 & 3,6 & 2,5 & 9,1 & 5,5 & 4,8 \\
7 & 3,3 & 2,3 & 7,8 & 6,7 & 3,3 \\
8 & 6,2 & 4,4 & 27,2 & 12,5 & 6,2 \\
\hline
\end{tabular}%
\label{tab:tabela3}%
\end{table}%
水平线怎样才能合并?
答案1
正如我在评论中指出的那样,如果您 (a) 想要使用垂直线,并且 (b) 坚持垂直线不受干扰,请不要使用该booktabs
包(及其宏)。只需将其替换为。\cmidrule
\cmidrule{2-6}
\cline
但是请考虑一下如何通过去除所有垂直线并使用少量但间距适当的水平线(通过使用包的宏booktabs
)来显著改善表格的“外观”。
我还想鼓励你改进表格的外观——这样你的读者才更有可能停留并欣赏内容表格的 —— 通过将五个数据列中的数字与各自的小数点对齐。这可以借助包siunitx
及其S
列类型来完成。包还允许您指定要使用哪种类型的小数点标记 —— 句号或逗号 —— 而无需直接编辑数字。
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[polish]{babel}
\usepackage{newtxtext,newtxmath}
\usepackage{booktabs,multirow}
\usepackage[output-decimal-marker={,}]{siunitx} % <-- new
\begin{document}
\begin{table}
%\renewcommand{\arraystretch}{1.3} % not needed
\centering
\caption{Add caption\strut}
\label{tab:tabela3}
\begin{tabular}{@{} c *{2}{S[table-format=1.1]} *{3}{S[table-format=2.1]} @{} }
\toprule
nr fragmentu & \multicolumn{3}{c}{wymiary [cm]} & \multicolumn{2}{c@{}}{wymiary} \\
& & & & \multicolumn{2}{c@{}}{fragmentu} \\
\cmidrule(lr){2-4} \cmidrule(l){5-6}
& {dł.} & {szer.} & {powierzchnia} & {dł.} & {szer.} \\
\midrule
1 & 6,8 & 4,9 & 33,6 & 7,0 & 11,8 \\
2 & 4,8 & 3,4 & 16,1 & 10,0 & 4,5 \\
3 & 3,4 & 2,4 & 7,9 & 6,5 & 3,5 \\
4 & 7,8 & 5,5 & 43,3 & 12,5 & 10,1 \\ \addlinespace
5 & 4,8 & 3,4 & 16,4 & 9,7 & 4,9 \\
6 & 3,6 & 2,5 & 9,1 & 5,5 & 4,8 \\
7 & 3,3 & 2,3 & 7,8 & 6,7 & 3,3 \\
8 & 6,2 & 4,4 & 27,2 & 12,5 & 6,2 \\
\bottomrule
\end{tabular}
\end{table}
\end{document}
答案2
类似于@Mico 答案(+1),但列被锁定在垂直线的“监狱”中,而水平线则使用包Xhline
中定义makecell
:
\documentclass{article}
\usepackage{siunitx}
\usepackage{makecell, multirow}
\NewExpandableDocumentCommand\mcc{O{1}m}%
{\multicolumn{#1}{c|}{#2}}
\begin{document}
\begin{table}[ht]
\sisetup{table-format=2.1,
output-decimal-marker={,}
}
\renewcommand{\arraystretch}{1.3}
\centering
\caption{Add caption}
\label{tab:tabela3}%
\begin{tabular}{|c |*{2}{S[table-format=1.1]|}
*{3}{S|} }
\Xhline{1pt}
\multirow{2}{*}{\makecell{nr.\\ fragmentu}}
& \multicolumn{3}{c|}{wymiary [cm]}
& \multicolumn{2}{c|}{\makecell{wymiary\\ fragmentu}} \\
\cline{2-6}
& \mcc{dł.} & \mcc{szer.} & \mcc{powierzchnia} & \mcc{dł.} & \mcc{szer.} \\
\Xhline{0.6pt}
1 & 6,8 & 4,9 & 33,6 & 7,0 & 11,8 \\
2 & 4,8 & 3,4 & 16,1 & 10,0 & 4,5 \\
3 & 3,4 & 2,4 & 7,9 & 6,5 & 3,5 \\
4 & 7,8 & 5,5 & 43,3 & 12,5 & 10,1 \\
5 & 4,8 & 3,4 & 16,4 & 9,7 & 4,9 \\
6 & 3,6 & 2,5 & 9,1 & 5,5 & 4,8 \\
7 & 3,3 & 2,3 & 7,8 & 6,7 & 3,3 \\
8 & 6,2 & 4,4 & 27,2 & 12,5 & 6,2 \\
\Xhline{1pt}
\end{tabular}%
\end{table}
\end{document}
编辑:正如@Mico 在其评论中所建议的,小数点现在已被小数逗号取代。
附录
您的桌子没有垂直线,但使用了tabularray
包装和X
列类型。为了好玩和锻炼,但您可能喜欢:
\documentclass{article}
\usepackage{tabularray}
\UseTblrLibrary{booktabs,siunitx}
\begin{document}
\begin{table}[ht]
\sisetup{table-format=2.2,
output-decimal-marker={,},
}
\caption{Add caption}
\label{tab:tabela3}%
\begin{tblr}{width=3\linewidth/4,
colspec = {c *{2}{X[c, si={table-format=1.1}]}
*{3}{X[c, si]}
},
rowsep=1pt,
}
\toprule
\SetCell[r=2]{c} {nr.\\ fragmentu}
& \SetCell[c=3]{c} {{{wymiary\\ {[cm]} }}}
& & & \SetCell[c=2]{c} {{{wymiary\\fragm}}}%{{{\\ tu}}}
& \\
\cmidrule[r=-0.5]{2-4}
\cmidrule[l=-0.5]{5-6}
& {{{dł.}}}
& {{{szer.}}}
& {{{powier.}}}
& {{{dł.}}}
& {{{szer.}}} \\
\midrule
1 & 6,8 & 4,9 & 33,6 & 7,0 & 11,8 \\
2 & 4,8 & 3,4 & 16,1 & 10,0 & 4,5 \\
3 & 3,4 & 2,4 & 7,9 & 6,5 & 3,5 \\
4 & 7,8 & 5,5 & 43,3 & 12,5 & 10,1 \\
5 & 4,8 & 3,4 & 16,4 & 9,7 & 4,9 \\
6 & 3,6 & 2,5 & 9,1 & 5,5 & 4,8 \\
7 & 3,3 & 2,3 & 7,8 & 6,7 & 3,3 \\
8 & 6,2 & 4,4 & 27,2 & 12,5 & 6,2 \\
\bottomrule
\end{tblr}
\end{table}
\end{document}
答案3
{NiceTabular}
供参考。的垂直规则nicematrix
与的规则兼容booktabs
。但是,正如其他答案所述,最好的设计可能是遵循的规则并booktabs
秉承的精神booktabs
(没有垂直规则)。
\documentclass{article}
\usepackage{nicematrix}
\usepackage{booktabs}
\usepackage{float}
\begin{document}
\begin{table}[H]
\renewcommand{\arraystretch}{1.3}
\centering
\caption{Add caption}
\begin{NiceTabular}{|c|c|c|c|c|c|}
\hline
\Block{2-1}{nr fragmentu} & \Block{1-3}{wymiary [cm]} &&& \multicolumn{2}{c}{wymiary fragmentu} \\
\cmidrule{2-6} & dł. & szer. & powierzchnia & dł. & szer. \\
\hline
1 & 6,8 & 4,9 & 33,6 & 7,0 & 11,8 \\
2 & 4,8 & 3,4 & 16,1 & 10,0 & 4,5 \\
3 & 3,4 & 2,4 & 7,9 & 6,5 & 3,5 \\
4 & 7,8 & 5,5 & 43,3 & 12,5 & 10,1 \\
5 & 4,8 & 3,4 & 16,4 & 9,7 & 4,9 \\
6 & 3,6 & 2,5 & 9,1 & 5,5 & 4,8 \\
7 & 3,3 & 2,3 & 7,8 & 6,7 & 3,3 \\
8 & 6,2 & 4,4 & 27,2 & 12,5 & 6,2 \\
\hline
\end{NiceTabular}%
\label{tab:tabela3}%
\end{table}%
\end{document}