将数组大小调整为框架的大小+Beamer

将数组大小调整为框架的大小+Beamer

我在 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

使用\resizeboxgraphicx 包,您可以将任何内容完美地适应框架宽度,正如 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可能并不重要,因为大小是在框架内本地改变的,但为了安全起见,请调用它或使用具有组或环境的范围。

相关内容