У меня есть несколько длинных строк в таблице, и я использую \makecell
для добавления разрывов строк. Обычно это работает нормально (центрирует текст по вертикали и расширяет ячейку, чтобы вместить), но мне это нужно внутри многострочного, и ячейка не расширяется, чтобы вместить текст. Ниже приведен MWB, показывающий поведение вместе с выводом.
Я пробовал использовать табличную среду внутри и снаружи многострочного, но не смог заставить это работать. Я также пробовал использовать {c|p{2cm}|c|c|}
и указывать ширину столбца в команде многострочного. Одна вещь, которая сработала, — указание высоты каждой строки с помощью \\[8pt]
, но тогда текст не центрируется по вертикали.
В идеале я хотел бы решение, в котором размеры ячеек автоматические, и мне нужно только вручную указать разрывы строк, но подойдет любое решение. Вторая картинка — это вывод, который я хочу (сделан в Excel).
\documentclass{article}
\usepackage{multirow}
\usepackage{makecell}
\begin{document}
\begin{table}
\centering
\begin{tabular}{|c|c|c|c|}
\hline
\multirow{2}{*}{\makecell{Line 1\\Line 2}} & \multirow{2}{*}{\makecell{Line 1\\Line 2\\Line 3}} & \multicolumn{2}{c|}{Wide Line} \\
\cline{3-4}
& & A & B \\
\hline
\end{tabular}
\end{table}
\end{document}
решение1
С tabularray
:
\documentclass{article}
\usepackage{tabularray}
\begin{document}
\begin{table}
\centering
\begin{tblr}{colspec={*4c}, vlines, hlines, hspan=even, vspan=even}
\SetCell[r=2]{c}{Line 1\\Line 2} & \SetCell[r=2]{c}{Line 1\\Line 2\\Line 3} & \SetCell[c=2]{c}{Wide Line} & \\
& & A & B \\
\end{tblr}
\end{table}
\end{document}