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}
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}
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}
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:
cependant si votre table a typiquement plus de texte sur les autres cellules que juste "sth1" elle aura l'air grand:
Pour moi, il a travaillé à utiliser, le commandement de "multirow" - le { * } "{largeur}"