我在 Beamer 演示文稿的页面中插入了一个表格,但问题是数组大小超出了框架。如何将数组大小调整为框架大小?
答案1
您可以使用以下功能调整大小,tabular
使其完全适合框架的文本块:graphicx
- 默认加载beamer
班级。更具体地说,您可以使用\resizebox{<width>}{<height>}{<stuff>}
调整<stuff>
宽度<width>
和高度<height>
。如果您希望保持 的纵横比<stuff>
,请将其中一个长度替换为!
:
\documentclass{beamer}% http://ctan.org/pkg/beamer
\usepackage{booktabs}% http://ctan.org/pkg/booktabs
\begin{document}
\begin{frame}
\frametitle{A large table that doesn't fit}
\begin{tabular}{*{26}{c}}
\toprule
A & B & C & D & E & F & G & H & I & J & K & L & M & N & O & P & Q & R & S & T & U & V & W & X & Y & Z \\
\midrule
01 & 02 & 03 & 04 & 05 & 06 & 07 & 08 & 09 & 10 & 11 & 12 & 13 &
14 & 15 & 16 & 17 & 18 & 19 & 20 & 21 & 22 & 23 & 24 & 25 & 26 \\
26 & 25 & 24 & 23 & 22 & 21 & 20 & 19 & 18 & 17 & 16 & 15 & 14 &
13 & 12 & 11 & 10 & 09 & 08 & 07 & 06 & 05 & 04 & 03 & 02 & 01 \\
\bottomrule
\end{tabular}
\end{frame}
\begin{frame}
\frametitle{A large table that does fit!}
\resizebox{\textwidth}{!}{%
\begin{tabular}{*{26}{c}}
\toprule
A & B & C & D & E & F & G & H & I & J & K & L & M & N & O & P & Q & R & S & T & U & V & W & X & Y & Z \\
\midrule
01 & 02 & 03 & 04 & 05 & 06 & 07 & 08 & 09 & 10 & 11 & 12 & 13 &
14 & 15 & 16 & 17 & 18 & 19 & 20 & 21 & 22 & 23 & 24 & 25 & 26 \\
26 & 25 & 24 & 23 & 22 & 21 & 20 & 19 & 18 & 17 & 16 & 15 & 14 &
13 & 12 & 11 & 10 & 09 & 08 & 07 & 06 & 05 & 04 & 03 & 02 & 01 \\
\bottomrule
\end{tabular}%
}
\end{frame}
\end{document}
当然,这也会缩小字体大小(实际上一切,包括规则宽度)。如果这不理想,您可以使用表格中的列填充(到消除一些空间)或者完全减少列数。甚至可以使用列选择将它们显示在单独的框架上。有关此内容,请参阅删除列的最简单方法?
尽管上述讨论引用了tabular
,但它同样适用于array
。语法类似于
\resizebox{\textwidth}{!}{%
$\begin{array}{<col spec>}
%...
\end{array}$%
}
答案2
使用较小的值\tabcolsep
并扩大宽度:
\documentclass{beamer}
\usepackage{booktabs}
\begin{document}
\begin{frame}
\frametitle{A large table that does fit!}
\makebox[\linewidth]{\resizebox{1.15\linewidth}{!}{%
\tabcolsep=1.5pt%
\begin{tabular}{@{}*{26}{c}@{}} \toprule
A & B & C & D & E & F & G & H & I & J & K & L & M & N & O & P & Q & R & S & T & U & V & W & X & Y & Z \\ \midrule
01 & 02 & 03 & 04 & 05 & 06 & 07 & 08 & 09 & 10 & 11 & 12 & 13 &
14 & 15 & 16 & 17 & 18 & 19 & 20 & 21 & 22 & 23 & 24 & 25 & 26 \\
26 & 25 & 24 & 23 & 22 & 21 & 20 & 19 & 18 & 17 & 16 & 15 & 14 &
13 & 12 & 11 & 10 & 09 & 08 & 07 & 06 & 05 & 04 & 03 & 02 & 01 \\\bottomrule
\end{tabular}}}
\end{frame}
\end{document}
答案3
使用\resizebox
graphicx 包,您可以将任何内容完美地适应框架宽度,正如 Werner 和 Herbert 提到的,表格以及图片和文本。
但是,这样您也会缩放表格中的文本。对于某些字体来说,这样做可能没问题,但想象一下,如果您将大字体缩小或将小字体放大 - 您可能无法获得最佳质量。此外,表格会整体缩放,包括列分隔和线宽。不同框架上的不同表格可能会得到不一致的设计。
正如我已经回复你的转帖一样beamer | 阵列大小调整至帧大小在里面LaTeX-Community.org 论坛,我会花一些精力在桌子上
- 选择合适的字体大小
- 使用
tabularx
它支持宽度参数以获得与框架宽度完美匹配的尺寸,指定\textwidth
、\linewidth
或\columnwidth
使用带有因子的 - 缩小柱间距
例子:
\documentclass{beamer}
\usepackage{tabularx}
\begin{document}
\begin{frame}\small
\frametitle{Fitting a table}
\begin{tabularx}{\textwidth}{*{20}{@{}X@{}}}
01 & 02 & 03 & 04 & 05 & 06 & 07 & 08 & 09 & 10 &
11 & 12 & 13 & 14 & 15 & 16 & 17 & 18 & 19 & 20
\end{tabularx}
\normalsize
\end{frame}
\end{document}
这里\normalsize
可能并不重要,因为大小是在框架内本地改变的,但为了安全起见,请调用它或使用具有组或环境的范围。