我有两个表格,它们的列数不同,而且太宽了,放不下。所以我以前\resizebox
会把它们放在线宽内,但这两个表格中的字体也缩放了。有没有办法让两个表格中的字体大小相同,并让它们放在线宽内。
\begin{table*}[!t]
\centering
\resizebox{\linewidth}{!}{
\begin{tabular}{@{}ccccccccccccccccccccc@{}}
\toprule
Hello & World & 0.01 & 0.02 & 0.03 & 0.04 & 0.05 & 0.06 & 0.07 & 0.08 & 0.09 & 0.01 & 0.02 & 0.03 & 0.04 & 0.05 & 0.06 & 0.07 & \\
\bottomrule
\end{tabular}
}
\end{table*}
\begin{table*}[t!]
\centering
\resizebox{\linewidth}{!}{
\begin{tabular}{@{}cccccccccccccccccccccccc@{}}
\toprule
Hello & World & 0.01 & 0.02 & 0.03 & 0.04 & 0.05 & 0.06 & 0.07 & 0.08 & 0.09 & 0.01 & 0.02 & 0.03 & 0.04 & 0.05 & 0.06 & 0.07 & 0.08 & 0.09 & 0.10 \\
\bottomrule
\end{tabular}
}
\end{table*}
答案1
您给出了一个很好的例子,说明为什么您永远不应该缩放表格。如果您需要较小的尺寸,请使用声明的字体大小,例如,\small
以便获得一致的间距,但是通常最好将表格格式化以使其适合。我意识到您的示例只是虚构的数据,因此这种重新格式化可能不合适,但通常凭借所显示数据的一些领域知识,您可以格式化表格以某种方式适应。
\documentclass[a4paper]{article}
\usepackage{booktabs}
\begin{document}
\begin{table*}
\centering
\setlength\tabcolsep{4pt}
\begin{tabular}{@{}*{19}{r}@{}}
\toprule
\multicolumn{2}{@{}c}{Something}&\multicolumn{17}{c@{}}{Things ${}\times10^2$}\\
\midrule
Hello & World & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 1 & 2 & 3 & 4 & 5 & 6 & 7 & \\
\bottomrule
\end{tabular}
\end{table*}
\begin{table*}
\centering
\setlength\tabcolsep{4pt}
\begin{tabular}{@{}*{21}{r}@{}}
\toprule
\multicolumn{2}{@{}c}{Something}&\multicolumn{19}{c@{}}{Things ${}\times10^2$}\\
\midrule
Hello & World & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 \\
\bottomrule
\end{tabular}
\end{table*}
Zzzz
\end{document}
答案2
您可以使用\scalebox
(但要考虑您的远视读者并尝试改变表格的布局)。
\documentclass{article}
\usepackage{array}
\usepackage{booktabs}
\usepackage{graphicx}
\renewcommand*{\arraystretch}{1.3}
\usepackage{mwe}% for testing purpose only
\begin{document}
\blindtext% for testing purpose only
\begin{table*}[!t]
\centering
\scalebox{.54}{
\begin{tabular}{@{}ccccccccccccccccccccc@{}}
\toprule
Hello & World & 0.01 & 0.02 & 0.03 & 0.04 & 0.05 & 0.06 & 0.07 & 0.08 & 0.09 & 0.01 & 0.02 & 0.03 & 0.04 & 0.05 & 0.06 & 0.07 & \\
\bottomrule
\end{tabular}
}
\end{table*}
\begin{table*}[!t]
\centering
\scalebox{.54}{
\begin{tabular}{@{}cccccccccccccccccccccccc@{}}
\toprule
Hello & World & 0.01 & 0.02 & 0.03 & 0.04 & 0.05 & 0.06 & 0.07 & 0.08 & 0.09 & 0.01 & 0.02 & 0.03 & 0.04 & 0.05 & 0.06 & 0.07 & 0.08 & 0.09 & 0.10 \\
\bottomrule
\end{tabular}
}
\end{table*}
\end{document}