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}
È stato utile?

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}

parbox nel documento lattice

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: text rotto nella larghezza destra ma purtroppo uscire dalla tabella

Tuttavia, se in genere il vostro tavolo ha più testo sulle altre cellule che solo "sth1" sarà grande: entrare descrizione dell'immagine qui

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top