![Enumerate 与 beamer 3.42 的行为不同](https://linux22.com/image/360371/Enumerate%20%E4%B8%8E%20beamer%203.42%20%E7%9A%84%E8%A1%8C%E4%B8%BA%E4%B8%8D%E5%90%8C.png)
以下是beamer
3.41 版产生的enumerate
:
\documentclass{beamer}
\mode<presentation>
{\usetheme{Rochester}}
\begin{document}
\begin{frame}
\begin{enumerate}[(a)]
\item Foo
\item Bar
\end{enumerate}
\begin{enumerate}[1]
\item Foo
\item Bar
\end{enumerate}
\end{frame}
\end{document}
3.42 版本具有beamer
以下内容:
后者的输出太丑了,很可能是个 bug。在等待 bug 修复期间(?),我该如何临时修复它,以便获得beamer
3.41 生成的输出?
答案1
v3.41 和 v3.42 之间的相关区别是在行enumerate mini template
中添加了beamerinnerthemedefault.sty
\defbeamertemplateparent{enumerate items}{enumerate item,enumerate subitem,enumerate subsubitem,enumerate mini template}
{}
解决方法:
beamerinnerthemedefault.sty
在工作文件夹中保留修改后的版本使用 beamer 自己的机制来设置枚举符号
\documentclass{beamer}
\mode<presentation>
{\usetheme{Rochester}}
\begin{document}
\begin{frame}
{
\setbeamertemplate{enumerate item}{(\alph{enumi})}
\begin{enumerate}
\item much smaller margin
\end{enumerate}
}
\end{frame}
\end{document}
答案2
就项目标签的样式而言,这种变化是经过深思熟虑的。Rochester
主题加载rectangles
内部主题,这始终是应该拥有“方形”项目标签。在正常情况下,我们可以看到enumerate
:
\documentclass{beamer}
\usetheme{Rochester}
\begin{document}
\begin{frame}
\begin{enumerate}
\item Foo
\item Bar
\end{enumerate}
\begin{enumerate}
\item Foo
\item Bar
\end{enumerate}
\end{frame}
\end{document}
当前情况下的文本看起来有点“挤压”,这是因为方块的大小是硬编码的。因此,可以将它们稍微放大一些,例如通过应用
\setbeamertemplate{enumerate mini template}
{%
\hbox{%
\usebeamerfont*{item projected}%
\usebeamercolor[bg]{item projected}%
\vrule width3ex height2.2ex depth.8ex%
\hskip-3ex%
\hbox to3ex{%
\hfil%
\color{fg}\insertenumlabel%
\hfil}%
}%
}
在项目的对齐方面,代码中刻意更改了缩进,这适用于“迷你模板”的宽度。因此,对于和(a)
,1
宽度设置不同。这里没有代码注释,所以我只能假设逻辑是,在任何一张幻灯片上,只enumerate
期望一种类型。因此,缩进的变化预计不会成为问题。从 v3.49 开始,此代码将被删除,以便在所有情况下缩进都相同。(见beamer
问题 453/ 犯罪https://github.com/josephwright/beamer/commit/5692a7d1983654a984f6f11d503e9913758768c0)添加此修复程序并调整设置后enumerate mini template
,输出如下所示
请注意,如果演示文稿使用迷你模板纯粹是为了更改项目标签的外观,那么正确的方法是更改beamer
模板
\documentclass{beamer}
\usetheme{Rochester}
\setbeamertemplate{items}[default]
\begin{document}
\begin{frame}
\begin{enumerate}
\item Foo
\item Bar
\end{enumerate}
\begin{enumerate}
\item Foo
\item Bar
\end{enumerate}
\end{frame}
\end{document}