Vertikale Zentrierung von Text in mehrzeiligen Tabellen bei Verwendung von \cmidrule

Vertikale Zentrierung von Text in mehrzeiligen Tabellen bei Verwendung von \cmidrule

Betrachten Sie das folgende Beispiel:

\documentclass{article}

\usepackage{siunitx}
\DeclareSIUnit[mode = text]\kroner{kr.}

\usepackage{booktabs,multirow}
\newcommand*\mr[2]{\multirow{#1}{*}{#2}}
\newcommand*\mc[2]{\multicolumn{#1}{c}{#2}}
\newcommand*\specialcell[2][c]{%
  \begin{tabular}[#1]{@{}c@{}}#2\end{tabular}}


\begin{document}

\begin{tabular}{
  l
  S[table-format = 3]
  S[table-format = 2.2]
}
 \toprule
    \mr{2}{\specialcell{Dansk\\ honning}}
  & \mc{2}{$1$~b{\ae}ger}       \\
    \cmidrule{2-3}               
  & \mc{1}{Masse~(\si{\g})}
  & \mc{1}{Pris~(\si{\kroner})} \\
 \midrule
    Almindelig
  & 450 & 14.95 \\
 \bottomrule
\end{tabular}

\end{document}

Ausgabe

Wie zentriere ich vertikal Dansk honningrelativ zu den ersten beiden Zeilen?

Ich bin zu dem Schluss gekommen, dass das Problem auftritt, weil rundherum etwas Platz hinzugefügt wird \cmidrule.

Antwort1

Sie können die Platzierung des mehrzeiligen Inhalts um ungefähr -(\aboverulesep + \belowrulesep)/2 anpassen. -0.4exscheint in Ordnung zu sein. Darüber hinaus habe ich Ihren \multirow{2}{*}{\specialcell{…}}Befehl durch den \multirowcellBefehl von ersetztmakecell, das dasselbe tut und weiter angepasst werden kann (Schriftart, horizontale und vertikale Ausrichtung usw.):

\documentclass{article}

\usepackage{siunitx}
\DeclareSIUnit[mode = text]\kroner{kr.}

\usepackage{booktabs,multirow}
\newcommand*\mc[2]{\multicolumn{#1}{c}{#2}}
\usepackage{makecell}

\begin{document}

\begin{tabular}{
  l
  S[table-format = 3]
  S[table-format = 2.2]
}
 \toprule
    \multirowcell{2}[-0.4ex]{Dansk\\honning}
  & \mc{2}{$1$~b{\ae}ger} \\
    \cmidrule{2-3}
  & \mc{1}{Masse~(\si{\g})}
  & \mc{1}{Pris~(\si{\kroner})} \\
 \midrule
    Almindelig
  & 450 & 14.95 \\
 \bottomrule
\end{tabular}

\end{document} 

Bildbeschreibung hier eingeben

verwandte Informationen