Latex: comment briser la ligne dans multirow à l'intérieur du tabulaire

Je ne peux pas trouver comment briser la ligne à l'intérieur du multirow dans tabular. J'ai besoin de faire une table où j'ai une cellule qui est deux lignes de haut, et j'ai un long texte dedans, mais il ne casse pas la ligne et le texte se superpose une autre cellule sur le côté gauche.

des suggestions?

Exemple de code:

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}
28
demandé sur kokosing 2010-10-21 23:41:39

4 réponses

Vous pouvez essayer de 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}

Toutefois, dans votre cas particulier, ma suggestion serait simplement de desserrer les restrictions des autres colonnes, car il y a trop d'espace gaspillé. Avec chaque p{}, qui force les autres colonnes à une certaine largeur, donc il n'y a pas assez de place pour la première colonne.

Le code suivant regardé présentable pour moi lorsque j'ai compilé:

\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}
10
répondu Steve Tjoa 2017-03-07 16:02:34

p colonne et \parbox fonctionne aussi:

\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

32
répondu Tombart 2014-01-17 09:12:49

pour moi le plus court et le plus pratique réponse:

utiliser \linewidth comme la longueur de l' {width} paramètre.

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

C'est ça!

Le seul problème, c'est que dans les cas improbables que le texte dans les autres cellules est vraiment court, il peut ressembler à ça: Broken text in the right width but sadly going out of the table

cependant si votre table a typiquement plus de texte sur les autres cellules que juste "sth1" elle aura l'air grand: enter image description here

10
répondu loved.by.Jesus 2015-02-02 15:08:30

Pour moi, il a travaillé à utiliser, le commandement de "multirow" - le { * } "{largeur}"

7
répondu OddballDK 2013-05-06 14:11:28