Латекс, сочетающий в себе несколько рядов и многоколонок

Я заметил странное поведение при объединении \multirow с \multicolumn:

PDF вывод кода ниже

  • Голова 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.

Другие вопросы по тегам