我曾提到过之前发布的关于同一主题的一些问题,即这和这用于将表格放入页面中。代码取自我在网上找到的指南。
\documentclass{article}
\usepackage{booktabs}
\newcommand{\ra}[1]{\renewcommand{\arraystretch}{#1}}
\begin{document}
\begin{table*}\centering
\ra{1.4}
\begin{tabular}{@{}rrrrcrrrcrrr@{}}\toprule
& \multicolumn{3}{c}{$w = 8$} & \phantom{abc}& \multicolumn{3}{c}{$w = 16$} &
\phantom{abc} & \multicolumn{3}{c}{$w = 32$}\\
\cmidrule{2-4} \cmidrule{6-8} \cmidrule{10-12}
& $t=0$ & $t=1$ & $t=2$ && $t=0$ & $t=1$ & $t=2$ && $t=0$ & $t=1$ & $t=2$\\ \midrule
$dir=1$\\
$c$ & 0.0790 & 0.1692 & 0.2945 && 0.3670 & 0.7187 & 3.1815 && -1.0032 & -1.7104 & -21.7969\\
$c$ & -0.8651& 50.0476& 5.9384&& -9.0714& 297.0923& 46.2143&& 4.3590& 34.5809& 76.9167\\
$c$ & 124.2756& -50.9612& -14.2721&& 128.2265& -630.5455& -381.0930&& -121.0518& -137.1210& -220.2500\\
$dir=0$\\
$c$ & 0.0357& 1.2473& 0.2119&& 0.3593& -0.2755& 2.1764&& -1.2998& -3.8202& -1.2784\\
$c$ & -17.9048& -37.1111& 8.8591&& -30.7381& -9.5952& -3.0000&& -11.1631& -5.7108& -15.6728\\
$c$ & 105.5518& 232.1160& -94.7351&& 100.2497& 141.2778& -259.7326&& 52.5745& 10.1098& -140.2130\\
\bottomrule
\end{tabular}
\caption{Caption}
\end{table*}
\end{document}
我尝试将上述链接中提出的解决方案应用到当前示例中:
p{width}
如同\begin{tabular}{@{}rrrrcrrrcrrr@{}p{0.8\textwidth}}
tabularx
环境\begin{tabularx}{@{}rrrrcrrrcrrrX@{}}
tabular*
环境\begin{tabular*}{0.8\textwidth}{@{}rrrrcrrrcrrrX@{}}
编辑我正在使用一个简单的article
类,除了 之外没有其他包booktabs
。
但它们不起作用?有什么想法吗?
答案1
除非您愿意并且能够扩大文本块的宽度或选择非常小的字体大小,否则我认为最好的选择是在横向模式下在单独的页面上排版表格。
以下代码通过使用sidewaystable
环境来实现这一点。我还想建议您 (a) 使用array
环境而不是环境tabular
(因为大多数材料都是数学)和 (b) 加载包siunitx
并使用其S
列类型将数字列中的数字对齐到小数点标记上。我还会省略全空白的列。
\documentclass{article}
\usepackage{booktabs} % \toprule, \midrule, \cmidrule, \bottomrule, \addlinespace
\usepackage{rotating} % for 'sidewaystable' environment
\usepackage{siunitx} % for 'S' column type
\newcommand{\ra}[1]{\renewcommand{\arraystretch}{#1}}
\begin{document}
\begin{sidewaystable}
\ra{1.1} % 1.4 seems excessive
\centering
$\begin{array}{@{} l *{9}{S[table-format=-3.4]} @{}}
\toprule
& \multicolumn{3}{c}{w=8} & \multicolumn{3}{c}{w=16} & \multicolumn{3}{c@{}}{w=32}\\
\cmidrule(lr){2-4} \cmidrule(lr){5-7} \cmidrule(l){8-10}
& {t=0} & {t=1} & {t=2} & {t=0} & {t=1} & {t=2} & {t=0} & {t=1} & {t=2} \\
\midrule
\mbox{dir}=1\\
c & 0.0790 & 0.1692 & 0.2945 & 0.3670 & 0.7187 & 3.1815 & -1.0032 & -1.7104 & -21.7969\\
c & -0.8651& 50.0476& 5.9384& -9.0714& 297.0923& 46.2143& 4.3590& 34.5809& 76.9167\\
c & 124.2756& -50.9612& -14.2721& 128.2265& -630.5455& -381.0930& -121.0518& -137.1210& -220.2500\\
\addlinespace
\mbox{dir}=0\\
c & 0.0357& 1.2473& 0.2119& 0.3593& -0.2755& 2.1764& -1.2998& -3.8202& -1.2784\\
c & -17.9048& -37.1111& 8.8591& -30.7381& -9.5952& -3.0000& -11.1631& -5.7108& -15.6728\\
c & 105.5518& 232.1160& -94.7351& 100.2497& 141.2778& -259.7326& 52.5745& 10.1098& -140.2130\\
\bottomrule
\end{array}$
\caption{Caption}
\end{sidewaystable}
\end{document}