在 beamer 中,将滑动元素缩小到更适合的“正确方法”是什么?

在 beamer 中,将滑动元素缩小到更适合的“正确方法”是什么?

我想缩小幻灯片中的元素,以便它更好地适应宽度和/或高度。我愿意减小字体大小,使用 scalebox/resizebox 之类的东西,或任何类似的东西(但不是压缩空间)。问题是,我想避免使用较低级别或“非光束”命令,以及避免选择明确的字体大小;相反,我想要一个可接受的默认缩放比例。

实现这一目标的“beamer-idiomatic”方法是什么?

答案1

为了实现非常相似的目标,我通常使用以下方法:

\begin{frame}
\frametitle{Size changed}
\scalebox{0.8}{\begin{minipage}{1.20\textwidth}

... your content here ...

\end{minipage}}
\end{frame}

我不知道如何计算比例因子和小页面宽度的组合值,我通常会尝试几个值,直到令我满意为止。

例如以下内容:

\begin{itemize}
\item First item.
  \begin{itemize}
  \item First subitem.
    \begin{itemize}
    \item \lipsum[75]
    \item \lipsum[66]
    \item \lipsum[75]
    \end{itemize}
  \item Second subitem.
  \end{itemize}
\item Second item.
\item Third item.
\end{itemize}

给出:

在此处输入图片描述

如果将 scale/minipage 值更改为 0.6/1.6,则可获得:

在此处输入图片描述

对于居中表我使用:

\begin{frame} {Scale Items}
\makebox[1.1\linewidth][c]{\scalebox{0.8}{\begin{minipage}{0.8\linewidth}
\begin{tabular}{l | c | c | c | c }
      & Column1 & Column2 & Column3 & Column4 \\
\hline \hline
Line1 & Value11 & Value12 & Value13 & Value14\\ 
Line2 & Value21 & Value22 & Value23 & Value24\\
Line3 & Value31 & Value32 & Value33 & Value34\\
Line4 & Value41 & Value42 & Value34 & Value44 
\end{tabular}
\end{minipage}}}
\end{frame}

这导致:

在此处输入图片描述

如果你改为\scalebox{0.8}\scalebox{1.2}则会得到以下结果:

在此处输入图片描述

答案2

对于基于 Lgen 答案的方法,我定义了一个“shrink”环境,可以自动计算适当的宽度(使用 calc 包)。这样就无需反复试验。

在序言中我写道

\usepackage{environ,calc}

\newlength{\envwidth}
\NewEnviron{shrink}[1]{
\setlength{\envwidth}{\linewidth/\real{#1}}
\scalebox{#1}{\begin{minipage}{\envwidth}\BODY\end{minipage}}
}

然后在框架上我可以简单地放一些类似的东西

\begin{shrink}{.7}
    \begin{itemize}
        \item \lipsum[75]
        \item \lipsum[66]
    \end{itemize}
\end{shrink}

(要编译该示例,您还必须添加\usepackage{lipsum}序言。)

共:

\documentclass[]{beamer}
\usepackage{lipsum} % this is just for the sample text
\usepackage{environ,calc}

\newlength{\envwidth}
\NewEnviron{shrink}[1]{
\setlength{\envwidth}{\linewidth/\real{#1}}
\scalebox{#1}{\begin{minipage}{\envwidth}\BODY\end{minipage}}
}

\begin{document}
    \begin{frame}
    \begin{itemize}
        \item First item.
        \begin{itemize}
        \item First subitem.
        \medskip 
        
            \begin{shrink}{.7}
        \begin{itemize}
            \item \lipsum[75]
            \item \lipsum[66]
            \end{itemize}
        \end{shrink}
        
        \smallskip
        \item Second subitem.
      \end{itemize}
    \item Second item.
    \item Third item.
    \end{itemize}
    \end{frame}

\end{document}

(不可否认,当我将环境仅应用于列表的一部分时,由于某种原因,事物在垂直方向上有点挤压,因此我使用 \smallskip 和 \medskip 进行了更正。可能有更优雅的选择,但我不知道如何全局处理它们。)

相关内容