\cmidrule을 사용할 때 테이블의 여러 행에 있는 텍스트를 세로로 가운데 맞춤

\cmidrule을 사용할 때 테이블의 여러 행에 있는 텍스트를 세로로 가운데 맞춤

다음 예를 고려하십시오.

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

산출

Dansk honning처음 두 줄을 수직으로 가운데에 맞추려면 어떻게 해야 합니까 ?

주변에 공간이 추가되었기 때문에 문제가 발생한다는 결론을 내렸습니다 \cmidrule.

답변1

여러 행 콘텐츠의 배치를 대략 -(\aboverulesep + \belowrulesep)/2만큼 조정할 수 있습니다. -0.4ex괜찮은 것 같습니다. 또한 귀하의 \multirow{2}{*}{\specialcell{…}}명령을 \multirowcell다음 명령 으로 대체했습니다.makecell, 동일한 작업을 수행하며 추가로 사용자 정의할 수 있습니다(글꼴, 가로 및 세로 정렬 등).

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

여기에 이미지 설명을 입력하세요

관련 정보