在我的表格的每一行中,我都有一个跨越两列的多行,并且在最后一列我添加了一个图像。
现在,您会注意到分隔多行的水平线与图像不对称对齐。我希望每行的上部和下部“子行”有相等的空间。我该怎么做?
我使用的代码看起来像这样(示例只有一行):
\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}