问:有没有一种比我的方法更不老套的\MyLen
方法,可以生成下面第二张表格?我想保留专业功能(但我诚挚地欢迎批评!),例如 (1)booktabs
效果、(2) 数据右对齐、(3) 没有垂直线、(4) 水平线仅用于分隔估计量和列标题、(5) 列宽相等、(6) 列间距紧密。
我生成了下表,但由于列宽不同,我认为它看起来不太专业(问:我错了吗?应该保留这个表吗?)
\documentclass{article}
\usepackage{booktabs}
\usepackage{diagbox}
\usepackage{tabularx}
\begin{document}
\begin{table}[ht]
\centering
\begin{tabular}{@{}lrrrrrrrr@{}}
\toprule
& \multicolumn{4}{l}{MPE} & \multicolumn{4}{l}{MAPE}\\
\cmidrule(r){1-1} \cmidrule(lr){2-5} \cmidrule(l){6-9}
\diagbox[trim=lr]{Est.}{Jumps} & 0 & 3 & 10 & 30 & 0 & 3 & 10 & 30 \\
\midrule
$\widetilde{JV}$ & 2.14 & 2.42 & 1.35 & $-$1.69 & 2.14 & 4.57 & 4.92 & 4.74 \\
$\widehat{JV}$ & 1.99 & 2.16 & 1.12 & $-$1.83 & 1.99 & 4.47 & 4.91 & 4.81 \\
$\widehat{JV}_{\mathrm{BNS04}}$ & 0.35 & $-$4.35 & $-$12.91 & $-$26.35 & 3.11 & 5.48 & 12.95 & 26.35 \\
\midrule
$\widetilde{IV}$ & $-$2.03 & $-$2.52 & $-$1.33 & 1.73 & 6.54 & 6.37 & 5.24 & 3.71 \\
$\widehat{IV}$ & $-$1.87 & $-$2.26 & $-$1.10 & 1.87 & 6.48 & 6.31 & 5.23 & 3.80 \\
$\widehat{IV}_{\mathrm{BNS04}}$ & $-$0.24 & 4.25 & 12.93 & 26.39 & 6.61 & 7.06 & 13.11 & 26.39 \\
\bottomrule
\end{tabular}
\caption{my caption}
\end{table}
\newlength{\MyLen}
\settowidth{\MyLen}{$-$26.35}
\newcolumntype{R}{>{\raggedleft\arraybackslash}p{\the\MyLen}}
\begin{table}[ht]
\centering
\begin{tabular}{@{}lRRRRRRRR@{}}
\toprule
& \multicolumn{4}{l}{MPE} & \multicolumn{4}{l}{MAPE}\\
\cmidrule(r){1-1} \cmidrule(lr){2-5} \cmidrule(l){6-9}
\diagbox[trim=lr]{Est.}{Jumps} & 0 & 3 & 10 & 30 & 0 & 3 & 10 & 30 \\
\midrule
$\widetilde{JV}$ & 2.14 & 2.42 & 1.35 & $-$1.69 & 2.14 & 4.57 & 4.92 & 4.74 \\
$\widehat{JV}$ & 1.99 & 2.16 & 1.12 & $-$1.83 & 1.99 & 4.47 & 4.91 & 4.81 \\
$\widehat{JV}_{\mathrm{BNS04}}$ & 0.35 & $-$4.35 & $-$12.91 & $-$26.35 & 3.11 & 5.48 & 12.95 & 26.35 \\
\midrule
$\widetilde{IV}$ & $-$2.03 & $-$2.52 & $-$1.33 & 1.73 & 6.54 & 6.37 & 5.24 & 3.71 \\
$\widehat{IV}$ & $-$1.87 & $-$2.26 & $-$1.10 & 1.87 & 6.48 & 6.31 & 5.23 & 3.80 \\
$\widehat{IV}_{\mathrm{BNS04}}$ & $-$0.24 & 4.25 & 12.93 & 26.39 & 6.61 & 7.06 & 13.11 & 26.39 \\
\bottomrule
\end{tabular}
\caption{my caption}
\end{table}
我喜欢这张表。更专业(但还有什么意见吗?再看一遍,这些列确实看起来有点宽)。不过,我不喜欢使用 hack 。我认为使用这个包\MyLen
可能会有一种不那么 hack 的方法:tabularx
\newcolumntype{R}{>{\raggedleft\arraybackslash}X}
\begin{table}[ht]
\centering
\begin{tabularx}{\linewidth}{@{}lRRRRRRRR@{}}
\toprule
& \multicolumn{4}{l}{MPE} & \multicolumn{4}{l}{MAPE}\\
\cmidrule(r){1-1} \cmidrule(lr){2-5} \cmidrule(l){6-9}
\diagbox[trim=lr]{Est.}{Jumps} & 0 & 3 & 10 & 30 & 0 & 3 & 10 & 30 \\
\midrule
$\widetilde{JV}$ & 2.14 & 2.42 & 1.35 & $-$1.69 & 2.14 & 4.57 & 4.92 & 4.74 \\
$\widehat{JV}$ & 1.99 & 2.16 & 1.12 & $-$1.83 & 1.99 & 4.47 & 4.91 & 4.81 \\
$\widehat{JV}_{\mathrm{BNS04}}$ & 0.35 & $-$4.35 & $-$12.91 & $-$26.35 & 3.11 & 5.48 & 12.95 & 26.35 \\
\midrule
$\widetilde{IV}$ & $-$2.03 & $-$2.52 & $-$1.33 & 1.73 & 6.54 & 6.37 & 5.24 & 3.71 \\
$\widehat{IV}$ & $-$1.87 & $-$2.26 & $-$1.10 & 1.87 & 6.48 & 6.31 & 5.23 & 3.80 \\
$\widehat{IV}_{\mathrm{BNS04}}$ & $-$0.24 & 4.25 & 12.93 & 26.39 & 6.61 & 7.06 & 13.11 & 26.39 \\
\bottomrule
\end{tabularx}
\caption{my caption}
\end{table}
我喜欢列更紧密,但第三行数据发生了一些奇怪的事情(问:知道那里发生了什么吗?)
答案1
我真的不喜欢你使用减号的方式。由于你所有的数据都是两位数,所以在这种情况下,对于最后一张表,更简单的解决方案是使用
\newcolumntype{R}{>{\begin{math}}r<{\end{math}}}
并消除$-$
黑客攻击。此外,您可以考虑将标题居中:MPE 和 MAPE。
或者,您可以使用S
来自这siunitx
对齐小数点。这最终也会移动“跳跃”行,因此如果不希望这样,您可以手动调整该行:
笔记:
- 我不知道为什么,但使用列
S
类型需要用 替换\midrule
和\bottomrule
。\cmidrule{1-9}
代码:修改的R
列类型:
\documentclass{article}
\usepackage{booktabs}
\usepackage{diagbox}
\usepackage{tabularx}
\begin{document}
\newcolumntype{R}{>{\begin{math}}r<{\end{math}}}
\begin{table}[ht]
\centering
\begin{tabularx}{\linewidth}{@{}lRRRRRRRR@{}}
\toprule
& \multicolumn{4}{l}{MPE} & \multicolumn{4}{l}{MAPE}\\
\cmidrule(r){1-1} \cmidrule(lr){2-5} \cmidrule(l){6-9}
\diagbox[trim=lr]{Est.}{Jumps} & 0 & 3 & 10 & 30 & 0 & 3 & 10 & 30 \\
\midrule
$\widetilde{JV}$ & 2.14 & 2.42 & 1.35 & -1.69 & 2.14 & 4.57 & 4.92 & 4.74 \\
$\widehat{JV}$ & 1.99 & 2.16 & 1.12 & -1.83 & 1.99 & 4.47 & 4.91 & 4.81 \\
$\widehat{JV}_{\mathrm{BNS04}}$ & 0.35 & -4.35 & -12.91 & -26.35 & 3.11 & 5.48 & 12.95 & 26.35 \\
\midrule
$\widetilde{IV}$ & -2.03 & -2.52 & -1.33 & 1.73 & 6.54 & 6.37 & 5.24 & 3.71 \\
$\widehat{IV}$ & -1.87 & -2.26 & -1.10 & 1.87 & 6.48 & 6.31 & 5.23 & 3.80 \\
$\widehat{IV}_{\mathrm{BNS04}}$ & -0.24 & 4.25 & 12.93 & 26.39 & 6.61 & 7.06 & 13.11 & 26.39 \\
\bottomrule
\end{tabularx}
\caption{my caption}
\end{table}
\end{document}
代號:siunitx
版本:
\documentclass{article}
\usepackage{booktabs}
\usepackage{diagbox}
\usepackage{tabularx}
\usepackage{siunitx}
\begin{document}
\begin{table}[ht]
\centering
\begin{tabularx}{\linewidth}{@{}lSSSSSSSS@{}}
%\begin{tabularx}{\linewidth}{@{}lrrrrrrrr@{}}
\toprule
& \multicolumn{4}{l}{MPE} & \multicolumn{4}{l}{MAPE}\\
\cmidrule(r){1-1} \cmidrule(lr){2-5} \cmidrule(l){6-9}
\diagbox[trim=lr]{Est.}{Jumps} & 0 & 3 & 10 & 30 & 0 & 3 & 10 & 30 \\
\cmidrule{1-9}
$\widetilde{JV}$ & 2.14 & 2.42 & 1.35 & -1.69 & 2.14 & 4.57 & 4.92 & 4.74 \\
$\widehat{JV}$ & 1.99 & 2.16 & 1.12 & -1.83 & 1.99 & 4.47 & 4.91 & 4.81 \\
$\widehat{JV}_{\mathrm{BNS04}}$ & 0.35 & -4.35 & -12.91 & -26.35 & 3.11 & 5.48 & 12.95 & 26.35 \\
\cmidrule{1-9}
$\widetilde{IV}$ & -2.03 & -2.52 & -1.33 & 1.73 & 6.54 & 6.37 & 5.24 & 3.71 \\
$\widehat{IV}$ & -1.87 & -2.26 & -1.10 & 1.87 & 6.48 & 6.31 & 5.23 & 3.80 \\
$\widehat{IV}_{\mathrm{BNS04}}$ & -0.24 & 4.25 & 12.93 & 26.39 & 6.61 & 7.06 & 13.11 & 26.39 \\
\cmidrule{1-9}
\end{tabularx}
\caption{my caption}
\end{table}
\end{document}