Lattice: come rompere la linea nel multirow all'interno del tabellare
Domanda
Non riesco a trovare il modo di rompere la linea all'interno del multirow in tabellare. Ho bisogno di fare qualche tavolo dove ho una cella che è due riga alta, e ho testo lungo in esso, ma non rompere la linea e il testo si sovrappone un'altra cella sul lato sinistro.
Qualche suggerimento?
Esempio di codice:
\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}
Soluzione
Si potrebbe provare a minipage
esso:
\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}
Tuttavia, nel vostro caso particolare, il mio suggerimento sarebbe semplicemente di allentare le restrizioni delle altre colonne, perché c'è troppo spazio sprecato lì. Con ogni p{}
, che le forze le altre colonne da una certa larghezza, quindi non c'è abbastanza spazio per la prima colonna.
Il codice seguente sembrava presentabile a me quando ho compilato:
\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}
Altri suggerimenti
Colonna p
e \parbox
funziona anche:
\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}
per me la più breve e più pratico Risposta:
uso \linewidth
come la lunghezza del parametro {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}
Questo è tutto!
Il problema è possibile solo che nel caso improbabile che il testo nelle altre celle è davvero breve se può sembrare che:
Tuttavia, se in genere il vostro tavolo ha più testo sulle altre cellule che solo "sth1" sarà grande:
Per me ha funzionato a utilizzare il build-in di comando di "multirow" - il {*} è "{width}"
Inoltre, utilizzando parbox
e \\
:
\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}
Puoi essere comunque attenzione a non superare i margini delle vostre cellule.