\documentclass{memoir}
\newcommand{\ra}[1]{\renewcommand{\arraystretch}{#1}}
\usepackage{graphicx}
\usepackage{booktabs}
\usepackage{amsmath}
\begin{document}
\begin{table*}[h!]
\centerfloat
\ra{1.3}
\scalebox{0.7}{
\begin{tabular}{@{}ccccccccccccccccccc@{}}\toprule
\multicolumn{3}{c}{$w = 8$} & \phantom{abc}& \multicolumn{3}{c}{$w = 16$} &
\phantom{abc} & \multicolumn{3}{c}{$w = 32$}&
\phantom{abc} & \multicolumn{3}{c}{$w = 32$}&
\phantom{abc} & \multicolumn{3}{c}{$w = 32$}\\
\cmidrule{1-3} \cmidrule{5-7} \cmidrule{9-11} \cmidrule{13-15}\cmidrule{17-19}
\text{$\mathrm{ABCD}^\dag$} & \text{$X^2 \ (\%)$} & FGH && \text{$\mathrm{ABCD}^\dag$} & \text{$X^2 \ (\%)$} & FGH && \text{$\mathrm{ABCD}^\dag$} & \text{$X^2 \ (\%)$} & FGH && \text{$\mathrm{ABCD}^\dag$} & \text{$X^2 \ (\%)$} & FGH && \text{$\mathrm{ABCD}^\dag$} & \text{$X^2 \ (\%)$} & FGH\\ \midrule
0 & 0 & 0 && 0 & 0 & 0 && 0 & 0 & 0 && 0 & 0 & 0 && 0 & 0 & 0\\
\bottomrule
\end{tabular}}
\caption{Caption}
\end{table*}
\end{document}
我有一张非常宽的桌子,只有一行。我个人认为这张桌子看起来非常“瘦”(就其占用的垂直空间而言),而且也太宽了。有人有什么改进建议吗?如果有任何其他可以改善桌子的总体改进建议,我也非常感激!
答案1
有几种可能性:
\documentclass{memoir}
\newcommand{\ra}[1]{\renewcommand{\arraystretch}{#1}}
\usepackage{graphicx}
\usepackage{booktabs}
\usepackage{amsmath}
\begin{document}
\begin{table*}[htp]% never this: [h!]
\centerfloat
\ra{1.3}
% avoid scaling tables and if you do
% you need a % after the {
% \scalebox{0.7}{
\tiny
\setlength\tabcolsep{1pt}
\begin{tabular}{@{}ccccccccccccccccccc@{}}\toprule
\multicolumn{3}{c}{$w = 8$} & \phantom{abc}& \multicolumn{3}{c}{$w = 16$} &
\phantom{abc} & \multicolumn{3}{c}{$w = 32$}&
\phantom{abc} & \multicolumn{3}{c}{$w = 32$}&
\phantom{abc} & \multicolumn{3}{c}{$w = 32$}\\
\cmidrule{1-3} \cmidrule{5-7} \cmidrule{9-11} \cmidrule{13-15}\cmidrule{17-19}
% \text doing nothing
$\mathrm{ABCD}^\dag$&
$X^2 \ (\%)$ & FGH &&
$\mathrm{ABCD}^\dag$ &
$X^2 \ (\%)$ & FGH &&
$\mathrm{ABCD}^\dag$ &
$X^2 \ (\%)$ & FGH &&
$\mathrm{ABCD}^\dag$ &
$X^2 \ (\%)$ & FGH &&
$\mathrm{ABCD}^\dag$ &
$X^2 \ (\%)$ & FGH\\ \midrule
0 & 0 & 0 && 0 & 0 & 0 && 0 & 0 & 0 && 0 & 0 & 0 && 0 & 0 & 0\\
\bottomrule
\end{tabular}
\caption{Caption}
\end{table*}
\begin{table*}[htp]% never this: [h!]
\centerfloat
\ra{1.3}
\begin{tabular}{@{}cccc@{}}\toprule
&$\mathrm{ABCD}^\dag$ &
$X^2 \ (\%)$ & FGH \\
\midrule
$w=8$&0&0&0\\
$w=16$&0&0&0\\
$w=32$&0&0&0\\
$w=64$&0&0&0\\
$w=128$&0&0&0\\
\bottomrule
\end{tabular}
\caption{Caption}
\end{table*}
\end{document}
答案2
另外,您可以将每个部分都制作成自己的表,如下所示:
\documentclass{memoir}
\newcommand{\ra}[1]{\renewcommand{\arraystretch}{#1}}
\usepackage{graphicx}
\usepackage{booktabs}
\usepackage{amsmath}
\usepackage[margin=1in]{geometry}
\usepackage{pgfkeys}
\makeatletter
\def\ae@small@table@w{}
\def\ae@small@table@abcd{0}
\def\ae@small@table@xx{0}
\def\ae@small@table@fgh{0}
\pgfkeys{/ae/small/table/.cd,
w/.store in=\ae@small@table@w,
abcd/.store in=\ae@small@table@abcd,
xx/.store in=\ae@small@table@xx,
fgh/.store in=\ae@small@table@fgh,
}
\newcommand\mysmalltable[1][]{%%
\bgroup
\pgfkeys{/ae/small/table/.cd,#1}%%
\begin{tabular}{ccc}\toprule
\multicolumn{3}{c}{$w=\ae@small@table@w$} \\\midrule
$\mathrm{ABCD}^\dag$ & $X^{2}\ (\%)$
& FGH \\\midrule
$\ae@small@table@abcd$ & $\ae@small@table@xx$
& $\ae@small@table@fgh$ \\\bottomrule
\end{tabular}%%
\egroup}
\makeatother
\begin{document}
\begin{table*}[h!]
\begin{minipage}[t]{\columnwidth}
\hspace*{\fill}%%
\mysmalltable[w=8,abcd=0.945]\hspace*{\fill}%%
\mysmalltable[w=16,]\hspace*{\fill}%%
\mysmalltable[w=32,xx=0.004]\par\vspace{0.5cm}%%
\hspace*{\fill}%%
\mysmalltable[w=32,]\hspace*{\fill}%%
\mysmalltable[w=32,]\hspace*{\fill}%%
\end{minipage}
\caption{Caption}
\end{table*}
\end{document}
添加键使得填写值变得更容易一些,并且知道它们会被正确放置。