Latex:如何在表格内的多行中打破行

时间:2010-10-21 19:41:40

标签: latex tabular multirow

我无法找到如何在表格中打破多行内部的行。我需要制作一些表格,其中我有一个单元格高两行,并且我有长文本,但它不会破坏行,文本与左侧的另一个单元格重叠。

有什么建议吗?

代码示例:

\begin{center}
    \begin{tabular}{|p{1cm}|p{2.5cm}|p{2cm}|p{2cm}|p{2cm}|p{2cm}|}
    \hline
    \multirow{2}{*}{Long text to break} % HERE IS A PROBLEM
        & Thing  & \multicolumn{2}{|c|}{Thing 2} & \multicolumn{2}{|c|}{Thing 3}    
    \\ \cline{2-6}
        & sth 1 & sth 1 & sth 2 & sth 1  & sth 2 \\ \hline
\hline
\end{tabular}
\end{center}

5 个答案:

答案 0 :(得分:33)

p列和\parbox也有效:

\usepackage{multirow}

\begin{document}
\begin{center}
\begin{tabular}{|p{1.5cm}|l|l|l|l|l|}
    \hline
    \multirow{2}{*}{\parbox{1.5cm}{Long text to break}}
    & Thing  & \multicolumn{2}{|c|}{Thing 2} & \multicolumn{2}{|c|}{Thing 3} \\
    \cline{2-6}
    & sth 1 & sth 1 & sth 2 & sth 1  & sth 2 \\ 
    \hline
    \hline
\end{tabular}
\end{center}
\end{document}

parbox in latex document

答案 1 :(得分:10)

您可以尝试minipage

\begin{center}
\begin{tabular}{|l|l|l|l|l|l|}
    \hline
    \multirow{2}{*}{\begin{minipage}{0.5in}Long text to break\end{minipage}}
    & Thing  & \multicolumn{2}{|c|}{Thing 2} & \multicolumn{2}{|c|}{Thing 3} \\
    \cline{2-6}
    & sth 1 & sth 1 & sth 2 & sth 1  & sth 2 \\ 
    \hline
    \hline
\end{tabular}
\end{center}

但是,在您的特定情况下,我的建议只是放松其他列的限制,因为那里浪费了太多空间。每个p{}会强制其他列为特定宽度,因此第一列没有足够的空间。

编译时,以下代码对我来说很明显:

\begin{center}
\begin{tabular}{|l|l|l|l|l|l|}
    \hline
    \multirow{2}{*}{Long text to break}
    & Thing  & \multicolumn{2}{|c|}{Thing 2} & \multicolumn{2}{|c|}{Thing 3} \\
    \cline{2-6}
    & sth 1 & sth 1 & sth 2 & sth 1  & sth 2 \\
    \hline
    \hline
\end{tabular}
\end{center}

答案 2 :(得分:10)

对我来说最短,最实用的答案:

使用\linewidth作为{width}参数的长度。

\usepackage{multirow}
\begin{document}

\begin{center}
\begin{tabular}{|p{1cm}|p{2.5cm}|p{2cm}|p{2cm}|p{2cm}|p{2cm}|}
\hline
\multirow{2}{\linewidth}{Long text to break} % HERE IS A PROBLEM
    & Thing  & \multicolumn{2}{|c|}{Thing 2} & \multicolumn{2}{|c|}{Thing 3}    
\\ \cline{2-6}
    & sth 1 & sth 1 & sth 2 & sth 1  & sth 2 \\ \hline
\hline
\end{tabular}
\end{center}

\end{document}

那就是它!

唯一可能的问题是,在不可能的情况下,其他单元格中的文本非常短,可能看起来像这样: Broken text in the right width but sadly going out of the table

但是,如果通常你的桌子上的其他单元格上的文字多于" sth1"看起来很棒: enter image description here

答案 3 :(得分:7)

对我而言,它使用了“multirow”的内置命令 - {*}是“{width}”

答案 4 :(得分:1)

还使用parbox\\

\documentclass{article}
\usepackage{multirow}

\begin{document}

\begin{center}
    \begin{tabular}{|p{1cm}|p{2.5cm}|p{2cm}|p{2cm}|p{2cm}|p{2cm}|}
        \hline
        \multirow{2}{*}{\parbox{1cm}{Long\\ text\\ to\\ break}} % NOT A PROBLEM?
        & Thing  & \multicolumn{2}{|c|}{Thing 2} & \multicolumn{2}{|c|}{Thing 3}    
        \\ \cline{2-6}
        & sth 1 & sth 1 & sth 2 & sth 1  & sth 2 \\ \hline
        \hline
    \end{tabular}
\end{center}

\end{document}

无论如何要小心,不要超过细胞的边缘。