如何在表格中垂直居中多行元素

如何在表格中垂直居中多行元素


在我的表格的每一行中,我都有一个跨越两列的多行,并且在最后一列我添加了一个图像。

该表看起来是这样的: 在此处输入图片描述

现在,您会注意到分隔多行的水平线与图像不对称对齐。我希望每行的上部和下部“子行”有相等的空间。我该怎么做?

我使用的代码看起来像这样(示例只有一行):

\documentclass[11pt]{report} 
\begin{document}
\begin{table}[]
\caption{Table with transformation details}
\label{transformations}
\resizebox{\columnwidth}{!}{%
\begin{tabular}{lllllll}
\hline
Variable & Transformation & Skewness & Kurtosis & Winsorisation & Polarity & Distributions \\ \hline
\multirow{2}{*}{Crime} & Raw Data & 6.945 & 57.658 & \multirow{2}{*}{maxval = 0.002} & \multirow{2}{*}{-} & \multirow{2}{*}{} \\ \cmidrule{2-4}
 & Transformed & -1.581 & 5.385 &  &  & \begin{minipage}{.3\textwidth}\includegraphics[width=\linewidth, height=25mm]{Images/dist/distributions_crime1.png} \end{minipage} \\ \hline
\end{tabular}%
}
\end{table}
\end{document}

干杯!

答案1

类似下面这样的东西吗?

请注意,您的表格比可用空间宽得多,因此我已申请sidewaystable添加旋转,而不是缩放整个表格,这是不推荐的。如果您更喜欢直立的表格,也许可以重新考虑将标题和单元格中的长内容更改为文本。

底部单元格的居中是通过使用额外的可选参数valign=c(需要使用 adjustbox可选参数加载[export])将图像的基线移动到中间点来实现的。

\vcorrection是纠正方法multirow,如果在表中引入了额外的间距,有时需要额外的偏移。该因素-0.5可能需要稍微调整。

一些小改动和建议。考虑在标签中使用前缀,tab:...表格或fig:...图形使用 sa。您可以缩短重复的列定义,例如*{n}{<col-type>},例如*{7}{l}--如果是n一位数字,它可以更短:*7{l}。如果您加载booktabs,您可以访问其他自定义规则:\toprule,,,,每个规则都接受可选参数规则宽度,例如;它们的区别在于在规则上方或下方添加额外的空间。\bottomrule\midrule\midrule[1.2pt]

\documentclass[11pt]{report}
\usepackage{booktabs}
\usepackage[demo]{graphicx}
\usepackage[export]{adjustbox}
\usepackage{rotating}
\usepackage{multirow}
\usepackage{caption}

\newlength\vcorrection


\begin{document}
\begin{sidewaystable}
    \setlength\vcorrection{-0.5\dimexpr\aboverulesep+\belowrulesep}
    \captionsetup{skip=3pt}
    \renewcommand{\arraystretch}{1.25}
    \caption{Table with transformation details}
    \label{tab:transformations}
    \centering
    \begin{tabular}{*7{l}}
        \toprule
        Variable & Transformation & Skewness & Kurtosis & Winsorisation & Polarity & Distributions \\
        \hline
        \multirow{2}*[\vcorrection]{Crime}
        & Raw Data
        & 6.945
        & 57.658
        & \multirow{2}*[\vcorrection]{maxval = 0.002}
        & -
        & \\
        \cmidrule{2-4}
              & Transformed & -1.581 & 5.385  &                &   & \includegraphics[width=4\dimexpr25mm/3, height=25mm, valign=c]{Images/dist/distributions_crime1.png} \\
        \midrule
        \multirow{2}*[\vcorrection]{Train station}
        & Raw Data
        & 2.398
        & 10.558
        & \multirow{2}*[\vcorrection]{maxval = 50000}
        & -
        & \\
        \cmidrule{2-4}
              & Transformed & -0.528 & 2.470  &                &   & \includegraphics[width=4\dimexpr25mm/3, height=25mm, valign=c]{Images/dist/distributions_crime1.png} \\
        \bottomrule
    \end{tabular}
\end{sidewaystable}
\end{document}

在此处输入图片描述

相关内容