Латекс, сочетающий в себе несколько рядов и многоколонок
Я заметил странное поведение при объединении \multirow
с \multicolumn
:
Голова 1.1 должна быть вертикально центрирована.
Глава 1.2 должна быть вертикально и горизонтально отцентрирована
Есть ли альтернативное решение \multirow
а также \multicolumn
для создания более сложных заголовков для таблиц LaTeX или есть решение для моей проблемы?
\documentclass{article}
\usepackage{multirow}
\usepackage[utf8]{inputenc}
\usepackage[a4paper,margin=1in]{geometry}
\usepackage{array}
\newcolumntype{C}[1]{>{\centering\arraybackslash\hspace{0pt}}p{#1}}
\begin{document}
\begin{table}[ht]
\centering
\begin{tabular}{|r|r|r|r|}
\multicolumn{1}{|C{2cm}}{\multirow{3}{*}{head 1.1}} &
\multicolumn{2}{|C{2cm}}{\multirow{2}{*}{head 1.2}} &
\multicolumn{1}{|C{2cm}}{head 1.3 which is longer than expected} \\ \hline
& & & \multicolumn{1}{|C{2cm}}{head 2.3} \\
& \multicolumn{1}{|C{2cm}}{head 2.2.1} &
\multicolumn{1}{|C{2cm}}{head 2.2.2} &
\multicolumn{1}{|C{2cm}}{head 3.3}
\end{tabular}
\end{table}
\end{document}
1 ответ
Я бы посоветовал складывать ваши многоуровневые заголовки / ячейки, используя tabular
который, естественно, будет центрировать его вертикально по отношению к другим клеткам. такие tabular
укладка производится легко с помощью makecell
:
\documentclass{article}
\usepackage{makecell}
\begin{document}
\begin{tabular}{|r|r|r|r|}
head 1.1 &
\multicolumn{2}{c|}{head 1.2} &
\makecell{head 1.3 \\ which is \\ longer than \\ expected} \\
\hline
& head 2.2.1 & head 2.2.2 & \makecell{head 2.3 \\ head 3.3}
\end{tabular}
\end{document}
Существуют и другие варианты выравнивания ячеек по [t]
оп или [b]
ottom.