我想缩小幻灯片中的元素,以便它更好地适应宽度和/或高度。我愿意减小字体大小,使用 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}