Подтвердить что ты не робот

Латекс: как разбить линию на несколько строк внутри табличного

Я не могу понять, как разбить линию внутри мультируста в табличном выражении. Мне нужно создать таблицу, в которой у меня есть одна ячейка с двумя строками, и у меня есть длинный текст, но она не разбивает строку, а текст перекрывает другую ячейку с левой стороны.

Любые предложения?

Пример кода:

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

Ответ 1

Вы можете попробовать minipage it:

\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

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

Ответ 3

для меня кратчайший и наиболее практичный ответ:

используйте \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

Ответ 4

Для меня это сработало, чтобы использовать встроенную команду "multirow" - {*} - "{width}"

Ответ 5

Также используя 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}

В любом случае будьте осторожны, чтобы не превышать поля ваших клеток.