如何删除表格线中的分隔符

如何删除表格线中的分隔符

我有一个简单的表格:

\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}

上述代码的输出

相关内容