多行表。行合并

多行表。行合并

我怎样才能将两列合并为一列?我的意思是,我制作一个有 7 列的表格,但每两列都应该合并在表格顶部。而且我只使用固定宽度的列。

我的代码是:

documentclass{article}
\setlength{\arrayrulewidth}{0.5mm}
\setlength{\tabcolsep}{18pt}
\renewcommand{\arraystretch}{1.5}
\begin{document}
\begin{table} [h!]
\centering
\setlength{\tabcolsep}{5pt}
\renewcommand{\arraystretch}{1.5}    
\caption{Table of description}
    \newcolumntype{P}[1]{>{\raggedright\arraybackslash}p{#1}}

\begin{tabular}{|P{3cm}|P{2cm}|P{2cm}|P{2cm}|P{2cm}|P{2cm}|P{2cm}|}
\hline
\ name & par & &par& &par& & \\
\hline
\ & & & & & & & \\
\end{document}

答案1

您的问题标题没有反映问题内容。您可能的意思是多列表格,列合并从问题内容来看。

您可以使用合并相邻单元格

    \multicolumn<number of columns>}{<align>}{<content>}

tabularray等效

    \SetCell[c=<number of columns>]{<align>} ...content...

当您使用这个新颖、功能强大的表格编写包时。

编辑: 我忽略了表格中第一列比其他列更宽这一点。X可以通过“更改”因子轻松实现列的不同列宽,该因子会更改标准列宽(在X[l]或 处X[1,l]])。此因子相当于>{\hsize=<factor>\hsize}Xtabularx表格处。

对于您的示例,在您的例子中,第一列的宽度3cm/2cm = 1.5比其他列的宽度宽,因此第一列的规格是X[1.5,l]X[1.5.l,m]

现更正此错误:

\documentclass{article}
\usepackage{tabularray}

\begin{document}
    \begin{table} [ht]
    \caption{Table of description}
\begin{tblr}{hlines = 0.5mm, vlines=0.5mm,
             colspec = {X[1.5,l]*{6}{X[l]}},
             }
name    & \SetCell[c=2]{c} par 
            &   &   \SetCell[c=2]{c} par
                    &   &   \SetCell[c=2]{c} par
                            &   \\
1       & 2 & 3 & 4 & 5 & 6 & 7 \\
        &   &   &   &   &   &   \\
\end{tblr}
    \end{table}
or
    \begin{table} [ht]
    \caption{Table of description}
\begin{tblr}{hlines, vlines,
             colspec = {X[1.5,l,m]*{7}{X[l]}},
             row{1} = {font=\bfseries}
             }
name    & \SetCell[c=2]{c} par
            &   &   \SetCell[c=2]{c} par
                    &   &   \SetCell[c=2]{c} par
                            &   \\
text in two lines
       & 2 & 3 & 4 & 5 & 6 & 7 \\
        &   &   &   &   &   &   \\
\end{tblr}
    \end{table}
\end{document}

以上是使用列类型 来实现单元格宽度相等X。通过使用它,表格宽度将等于\textwidthtabularray对于此列类型,定义许多选项,例如l单元格内容左对齐、r右对齐、c居中、m垂直居中等。这些选项可以组合在一起,如第二个示例所示(我更喜欢这个示例而不是第一个示例)。有关详细信息,请参阅包文档。

在此处输入图片描述

答案2

很难理解你想要什么。你想要这样的东西吗?

在此处输入图片描述

\documentclass{article}

\usepackage{geometry}
\usepackage{array}

\setlength{\arrayrulewidth}{0.5mm}
\newcolumntype{P}[1]{>{\raggedright\arraybackslash}p{#1}}
% \setlength{\tabcolsep}{18pt}

\begin{document}
    \begin{table} [h!]
    \centering
    \setlength{\tabcolsep}{5pt}
    \renewcommand{\arraystretch}{1.5}    
    \caption{Table of description}
    \begin{tabular}{|P{3cm}|*{6}{P{2cm}|}}
        \hline
        name & \multicolumn{2}{c|}{par}  &\multicolumn{2}{c|}{par} &\multicolumn{2}{c|}{par}  \\
        \hline
         & & & & & & \\
         \hline
    \end{tabular}
    \end{table}
\end{document}

要合并两列(或更多列),您可以使用该\multicolumn{}{}{}命令,其中第一个参数是需要合并的列数,第二个参数是列的水平对齐方式(lc或 ,r),第三个参数是列的内容。

现在,您的表格中出现了一些错误。您需要为列(n-1)添加列分隔符(&n(您使用了 7 &)。您需要array包来定义新的列类型。另一个问题是您的表格宽度超出了文本宽度。因此,我建议减小一些列的宽度。

此外,如果您有多个相同类型的列,则可以使用命令来定义它们,其中列数为*{n}{<columnType>}n

相关内容