\begin{table}[htbp]
\centering
\renewcommand{\arraystretch}{3.0}
\resizebox{\textwidth}{!}
{\begin{tabular}{c|l|l|l|l|l|l|c}
\multicolumn{1}{r}{} & \multicolumn{3}{c}{Active} & \multicolumn{3}{c}{Passive} & \\
\cmidrule{2-7} \multicolumn{1}{c|}{\multirow{4}[4]{*}{Asset Allocation}} & \multicolumn{3}{l|}{\multirow{2}[2]{*}{IV Actual Portfolio Returns}} & \multicolumn{3}{l|}{\multirow{2}[2]{*}{II Policy and active asset Allocation Return}} & \multirow{2}[2]{*}{Active} \\
& \multicolumn{3}{l|}{} & \multicolumn{3}{l|}{} & \\
\cmidrule{2-7} & \multicolumn{3}{l|}{\multirow{2}[2]{*}{III Policy and Security Selection Returns}} & \multicolumn{3}{l|}{\multirow{2}[2]{*}{I Policy Returns (Passive Portfolio Benchmark)}} & \multirow{2}[2]{*}{Passive} \\
& \multicolumn{3}{l|}{} & \multicolumn{3}{l|}{} & \\
\cmidrule{2-7}
\end{tabular}}%
\caption{Security Selection}
\label{tab:addlabel}%
\end{table}%
答案1
我认为“盒子边缘问题”是指水平线和垂直线之间缺少连接,如下图所示,用红色圆圈突出显示:
这是由于您将包\cmidrule
中的水平线booktabs
与垂直线组合在一起而导致的。正如booktabs
文档所述,其水平线不宜与垂直线组合使用,从而导致观察到间隙。为了解决这个问题,您只需将所有\cmidrule
命令替换为即可\cline
。
不过,我还建议对您的代码进行一些简化。这些简化显示在以下 MWE 中,包括:
- 替换
adjustbox
(不推荐,因为它会导致不一致和太小的字体大小)以tabularx
确保表格适合文本宽度。 - 删除多余的列。您的表格只需要 4 列,而不是 7 列。
- 添加
\renewcommand\tabularxcolumn[1]{m{#1}}
使文本垂直居中 - 使用
cellspace
而不是arraystretch
与空行结合,以便在单元格上方和下方添加更多垂直空白 - ...
\documentclass{article}
\usepackage{multirow}
\usepackage{tabularx}
\usepackage{makecell}
\renewcommand\tabularxcolumn[1]{m{#1}}
\usepackage{cellspace}
\setlength\cellspacetoplimit{20pt}
\setlength\cellspacebottomlimit{\cellspacetoplimit}
\begin{document}
\begin{table}[htbp]
\begin{tabularx}{\textwidth}{c|X|X|Sc}
\multicolumn{1}{r}{}
& \multicolumn{1}{c}{Active}
&\multicolumn{1}{c}{Passive} \\
\cline{2-3}
\multirow{4}{*}{\makecell[r]{Asset\\ Allocation}}
& IV Actual Portfolio Returns
& II Policy and active asset Allocation Return
& Active \\
\cline{2-3}
& III Policy and Security Selection Returns
& I Policy Returns (Passive Portfolio Benchmark)
& Passive \\
\cline{2-3}
\end{tabularx}
\caption{Security Selection}
\label{tab:addlabel}%
\end{table}%
\end{document}