有没有办法可以稍微缩小表格(包括字体大小)以适合列边界?

有没有办法可以稍微缩小表格(包括字体大小)以适合列边界?

我的表格对于 3.33 英寸的列来说有点太宽了。有没有办法简单地将表格缩小一点以使其适合?如果 10pt 字体变成 9pt 左右,那就没问题了。这是一个例子。

\begin{table}
\centering
\begin{tabular}{r|lll}
\multicolumn{1}{r}{}
& \multicolumn{1}{l}{Heading 1}
& \multicolumn{1}{l}{Heading 2}
& \multicolumn{1}{l}{Heading 3} \\ \cline{2-4}
Row 1 & Cell 1,1 & Cell 1,2 & Cell 1,3 \\
Row 2 & Cell 2,1 & Cell 2,2 & Cell 2,3
\end{tabular}
\end{table}

答案1

您可以使用包\resizebox{<width>}{<height>}中的选项调整其graphics大小。列宽为\columnwidth,您可以选择!高度以使其随宽度缩放。

\usepackage{graphics}
% ...

\begin{table}
\centering
\resizebox{\columnwidth}{!}{%
\begin{tabular}{r|lll}
\multicolumn{1}{r}{}
& \multicolumn{1}{l}{Heading 1}
& \multicolumn{1}{l}{Heading 2}
& \multicolumn{1}{l}{Heading 3} \\ \cline{2-4}
Row 1 & Cell 1,1 & Cell 1,2 & Cell 1,3 \\
Row 2 & Cell 2,1 & Cell 2,2 & Cell 2,3
\end{tabular}%
}
\end{table}

如果表格包含逐字或类似的材料,那就\resizebox不够了。您可以改用包{adjustbox}{width=\columnwidth}中的环境adjustbox。它基于相同的graphicx代码,\resizebox但允许任何内容。

请不要center在浮点数 ( figure, table) 中使用环境,它会产生额外的边距,并且并不总是有效。请改用\centering宏。


解决方案adjustbox

\usepackage{adjustbox}
% ...
\begin{table}
\begin{adjustbox}{width=\columnwidth,center}
\begin{tabular}{r|lll}
\multicolumn{1}{r}{}
& \multicolumn{1}{l}{Heading 1}
& \multicolumn{1}{l}{Heading 2}
& \multicolumn{1}{l}{Heading 3} \\ \cline{2-4}
Row 1 & Cell 1,1 & Cell 1,2 & Cell 1,3 \\
Row 2 & Cell 2,1 & Cell 2,2 & Cell 2,3
\end{tabular}
\end{adjustbox}
\end{table}

答案2

\scalebox您可以使用包中的功能缩放整个表格graphicx

\documentclass{article}
\usepackage{graphicx}
\begin{document}
\begin{table}
\begin{center}
\scalebox{0.9}{
\begin{tabular}{r|lll}
\multicolumn{1}{r}{}
& \multicolumn{1}{l}{Heading 1}
& \multicolumn{1}{l}{Heading 2}
& \multicolumn{1}{l}{Heading 3} \\ \cline{2-4}
Row 1 & Cell 1,1 & Cell 1,2 & Cell 1,3 \\
Row 2 & Cell 2,1 & Cell 2,2 & Cell 2,3
\end{tabular}}
\end{center}
\end{table}
\end{document}

答案3

您可以将其大小调整为与线宽完全相同:

\documentclass{article}
\usepackage{graphicx}
\begin{document}
\noindent\hrulefill

\smallskip\noindent
\resizebox{\linewidth}{!}{%
\begin{tabular}{r|lll}
\multicolumn{1}{r}{}
& \multicolumn{1}{l}{Heading 1}
& \multicolumn{1}{l}{Heading 2}
& \multicolumn{1}{l}{Heading 3} \\ \cline{2-4}
Row 1 & Cell 1,1 & Cell 1,2 & Cell 1,3 \\
Row 2 & Cell 2,1 & Cell 2,2 & Cell 2,3
\end{tabular}}

\end{document}

答案4

这是一个视觉比较,表明只需缩放太宽的表格(右列)即可总是错误的方法。解决方案应该是减小字体大小,并根据需要减小列间距,如果还需要精确适合表格的宽度,请使用tabular*环境或包作为 tabularx、tabulary 或 widetable(左列),如果还不够,则重新设计表格(不显示)。

姆韦

你看到右边的问题了吗?让我解释一下:

  1. 规则也被缩放,产生不一致的细规则(丑陋,对吧?)。

  2. 缩小后的正常大小的文本看起来不像小字体(使用\small\footnotesize或获得\scriptize\tiny。可读性较差。

  3. 更糟糕的是,每个缩放的表格都会有不同的字体大小:40 个表格 = 40 种字体大小,而不是整个文档中有 2 种或 3 种标准大小(非常丑陋,对吧?)。

  4. 更糟糕的是,由于您可以无限缩小表格,因此允许使用小到难以阅读的字体的风险很高。也许您已经注意到左下角表格的最后一个标题有错误的编号,但是……您是否注意到右列最后一个表格中也有四个编号错误的单元格?

使用另一种方法,您可以决定限制(注意:我的是\footnotesize),或者如果您缺乏常识,您不能将限制降低到荒谬的程度。 有这个限制很重要,因为它会告诉您何时必须通过计划 B(重新设计表格)。

代码:

\documentclass[twocolumn,a5paper]{article}
\usepackage{lipsum,parskip,booktabs,graphicx,tabulary,tabularx}
\usepackage[margin=1cm,bmargin=7cm]{geometry}
\begin{document}

 \lipsum[1][1-3]    

\begin{tabularx}{\linewidth}{lXX}\toprule
& Heading 1 & Heading 2\\\cmidrule{2-3}
Row 1 & Cell 1,1 & Cell 1,2 \\
Row 2 & Cell 2,1 & Cell 2,2 \\\bottomrule
\end{tabularx}

% \lipsum[2][1-3]   

{\small\tabcolsep5pt 
\begin{tabularx}{\linewidth}{@{}lXXX@{}}\toprule
& Heading 1 & Heading 2 & Heading 3 \\\cmidrule{2-4}
Row 1 & Cell 1,1 & Cell 1,2 & Cell 1,3 \\
Row 2 & Cell 2,1 & Cell 2,2 & Cell 2,3 \\\bottomrule
\end{tabularx}}

{\scriptsize
\tabcolsep1.7pt 
\begin{tabularx}{\linewidth}{@{}lXXXX@{}}\toprule
& Heading 1 & Heading 2 & Heading 3 & Heading 4 \\\cmidrule{2-5}
Row 1 & Cell 1,1 & Cell 1,2 & Cell 1,3 & Cell 1,4 \\
Row 2 & Cell 2,1 & Cell 2,2 & Cell 2,3 & Cell 2,4 \\\bottomrule
\end{tabularx}}


{\tiny
\tabcolsep1.1pt 
\begin{tabularx}{\linewidth}{@{}lXXXXX@{}}\toprule
& Heading 1 & Heading 2 & Heading 3 & Heading 4 & Heading 5\\\cmidrule{2-6}
Row 1 & Cell 1,1 & Cell 1,2 & Cell 1,3 & Cell 1,4 & Cell 1,5   \\
Row 2 & Cell 2,1 & Cell 2,2 & Cell 2,3 & Cell 2,4 & Cell 2,5 \\\bottomrule
\end{tabularx}}


{\tiny\tabcolsep1pt
\begin{tabulary}{\linewidth}{@{}lCCCCCCC@{}}\toprule
& Heading 1 &  Heading 2 & Heading 3 &  Heading 4 &  Heading 5 & Heading 6\\\cmidrule{2-7}
Row 1 & Cell 1,1 & Cell 1,2 & Cell 1,3 & Cell 1,4 & Cell 1,5  & Cell 1,5 \\
Row 2 & Cell 2,1 & Cell 2,2 & Cell 2,3 & Cell 2,4 & Cell 2,5  & Cell 1,5 \\\bottomrule
\end{tabulary}}


{\tiny\tabcolsep1pt
\begin{tabulary}{\linewidth}{@{}lCCCCCCCC@{}}\toprule
& Heading 1 &  Heading 2 & Heading 3 &  Heading 4 &  Heading 5 & Heading 6 & Heading 6\\\cmidrule{2-8}
Row 1 & Cell 1,1 & Cell 1,2 & Cell 1,3 & Cell 1,4 & Cell 1,5  & Cell 1,6  & Cell 1,7  \\
Row 2 & Cell 2,1 & Cell 2,2 & Cell 2,3 & Cell 2,4 & Cell 2,5  & Cell 2,5  & Cell 2,7  \\\bottomrule
\end{tabulary}}

\lipsum[2][1]
\footnote{Footnote as reference of reasonable and standard small font.} 

    \newpage \lipsum[1][1-3]    


{\centering
\begin{tabular}{lll}\toprule
& Heading 1 & Heading 2\\\cmidrule{2-3}
Row 1 & Cell 1,1 & Cell 1,2 \\
Row 2 & Cell 2,1 & Cell 2,2 \\\bottomrule
\end{tabular}\par}

\resizebox{\linewidth}{!}{%
\begin{tabular}{llll}\toprule
& Heading 1
& Heading 2
& Heading 3 \\\cmidrule{2-4}
Row 1 & Cell 1,1 & Cell 1,2 & Cell 1,3 \\
Row 2 & Cell 2,1 & Cell 2,2 & Cell 2,3 \\\bottomrule
\end{tabular}}

\resizebox{\linewidth}{!}{%
\begin{tabular}{lllll}\toprule
 & Heading 1 & Heading 2 & Heading 3 & Heading 4 \\\cmidrule{2-5}
Row 1 & Cell 1,1 & Cell 1,2 & Cell 1,3 & Cell 1,4 \\
Row 2 & Cell 2,1 & Cell 2,2 & Cell 2,3 & Cell 2,4 \\\bottomrule
\end{tabular}}

\resizebox{\linewidth}{!}{%
\begin{tabular}{llllll}\toprule
& Heading 1 & Heading 2 & Heading 3 & Heading 4 & Heading 5\\\cmidrule{2-6}
Row 1 & Cell 1,1 & Cell 1,2 & Cell 1,3 & Cell 1,4 & Cell 1,5\\
Row 2 & Cell 2,1 & Cell 2,2 & Cell 2,3 & Cell 2,4 & Cell 2,5\\\bottomrule
\end{tabular}}

\resizebox{\linewidth}{!}{%
\begin{tabular}{lllllll}\toprule
 & Heading 1 & Heading 2 & Heading 3 & Heading 4 & Heading 5 & Heading 6\\\cmidrule{2-7}
Row 1 & Cell 1,1 & Cell 1,2 & Cell 1,3 & Cell 1,4 & Cell 1,5  & Cell 1,5 \\
Row 2 & Cell 2,1 & Cell 2,2 & Cell 2,3 & Cell 2,4 & Cell 2,5  & Cell 1,5 \\\bottomrule
\end{tabular}}

\resizebox{\linewidth}{!}{%
\begin{tabular}{llllllll}\toprule
 & Heading 1 & Heading 2 & Heading 3 & Heading 4 & Heading 5 & Heading 6 & Heading 7\\\cmidrule{2-8}
Row 1 & Cell 1,1 & Cell 1,2 & Cell 1,3 & Cell 1,4 & Cell 1,5  & Cell 1,5  & Cell 1,5 \\
Row 2 & Cell 2,1 & Cell 2,2 & Cell 2,3 & Cell 2,4 & Cell 2,5  & Cell 1,5 & Cell 1,5  \\\bottomrule
\end{tabular}}

\lipsum[2][1-2]
\
\end{document}

相关内容