多列表格

多列表格

我有这个代码

\begin{table}[htbp]
  \centering
  \caption{Add caption}
    \begin{tabular}{|c|c|c|c|c|c|}
    \hline
    \multirow{3}[4]{*}{Tested Text} & \multicolumn{5}{c|}{\multirow{2}[2]{*}{         Training Text (tested text is not included)}}\\
          & \multicolumn{5}{c|}{} \\
\cline{2-6}          & BI    & IK    & MR    & MA    & TO \\
    \hline
    BI    &       &       &       &       &  \\
    \hline
    IK    &       &       &       &       &  \\
    \hline
    MR    &       &       &       &       &  \\
    \hline
    MA    &       &       &       &       &  \\
    \hline
    TO    &       &       &       &       &  \\
    \hline
    \end{tabular}%
  \label{tab:addlabelkiki}%
\end{table}%

我不明白为什么最后一列比其他列大,如图所示图片

任何建议

答案1

您可以用以下代码替换您的代码:

\begin{table}[htbp]
  \centering
  \caption{Add caption}
    \begin{tabular}{|c|c|c|c|c|c|}
    \hline
    \multirow{3}[4]{*}{Tested Text} & \multicolumn{5}{c|}{Training Text }\\
          & \multicolumn{5}{c|}{(tested text is not included)} \\
\cline{2-6}          & BI    & IK    & MR    & MA    & TO \\
    \hline
    BI    &       &       &       &       &  \\
    \hline
    IK    &       &       &       &       &  \\
    \hline
    MR    &       &       &       &       &  \\
    \hline
    MA    &       &       &       &       &  \\
    \hline
    TO    &       &       &       &       &  \\
    \hline
    \end{tabular}%
  \label{tab:addlabelkiki}%
\end{table}%

这样,您便可以将句子分成两部分,Training Text (tested text is not included)而无需换行。

答案2

我并不是这些问题的专家,但由于没有其他人真正回答过这个问题......上面框中的“标题”文本是否需要额外的宽度\multicolumn

当表格组合在一起时,它会遍历前面的列,但由于它们都是空的,所以它们的大小只是按照您输入的两个字母的宽度来调整。它到达最后一列,突然意识到它需要提供额外的宽度来容纳剩余的“标题”文本。@marchetto 给出的答案因此将问题最小化,因为您缩短了“标题”文本。同样,如果空白框中的文本较长,则列宽会有所不同。例如

\begin{table}[htbp]
  \centering
  \caption{Add caption}
    \begin{tabular}{|c|c|c|c|c|c|}
    \hline
    \multirow{3}[4]{*}{Tested Text} & \multicolumn{5}{c|}{\multirow{2}[2]{*}{Training Text (tested text is not included)}}\\
          & \multicolumn{5}{c|}{} \\
\cline{2-6}          & BI    & IK    & MR    & MA    & TO \\
    \hline
    BI    &     Here are  & some  & words &   in your columns &  \\
    \hline
    IK    &       &       &       &       &  \\
    \hline
    MR    &       &       &       &       &  \\
    \hline
    MA    &       &       &       &       &  \\
    \hline
    TO    &       &       &       &       &  \\
    \hline
    \end{tabular}%
  \label{tab:addlabelkiki}%
\end{table}%

您可以通过自己定义一些新的列样式来强制设置列宽。我在这里读到过如何做到这一点,因此不能承担该方法的任何责任,但您可以这样做:

\documentclass[12pt, a4paper, oneside, fleqn]{report}

\usepackage{multirow} 
\usepackage{array}
\newcolumntype{C}[1]{>{\centering\let\newline\\\arraybackslash\hspace{0pt}}m{#1}}

\begin{document}

\begin{table}[htbp]
  \centering
  \caption{Add caption}
    \begin{tabular}{|c|C{1.5cm}|C{1.5cm}|C{1.5cm}|C{1.5cm}|C{1.5cm}|}
    \hline
    \multirow{3}[4]{*}{Tested Text} & \multicolumn{5}{c|}{\multirow{2}[2]{*}{Training Text (tested text is not included)}}\\
          & \multicolumn{5}{c|}{} \\
\cline{2-6}          & BI    & IK    & MR    & MA    & TO \\
    \hline
    BI    &       &       &       &       &  \\
    \hline
    IK    &       &       &       &       &  \\
    \hline
    MR    &       &       &       &       &  \\
    \hline
    MA    &       &       &       &       &  \\
    \hline
    TO    &       &       &       &       &  \\
    \hline
    \end{tabular}%
  \label{tab:addlabelkiki}%
\end{table}%

\end{document}

相关内容