我使用 beamer 中的 enumitem 创建一个枚举列表,如下所示:
\documentclass{beamer}
\usetheme{Dresden}
\useinnertheme{circles}
\usepackage{enumitem}
\newlist{enum}{enumerate}{5}
\setlist[enum]{label*=\arabic*., listparindent=21pt, font=\bfseries\tiny }
\setitemize{label=\usebeamerfont*{itemize item}%
\usebeamercolor[fg]{itemize item}
\usebeamertemplate{itemize item}}
\begin{document}
\begin{frame}
\frametitle{Frame title}
\begin{enum}
\item First item
\begin{enum}
\item First subitem
\item Second subitem
\begin{enum}
\item First subitem
\item Second subitem
\begin{itemize}
\item First subitem
\item Second subitem
\end{itemize}
\end{enum}
\end{enum}
\item Second subitem
\end{enum}
\end{frame}
\end{document}
结果是:各级字体都一样。
但是如何设置列表中不同级别的不同字体大小?如何使更高级别的文本尺寸更大?
答案1
我通过 enumitem 中的“before”命令解决了这个问题。
\documentclass{beamer}
\usetheme{Dresden}
\useinnertheme{circles}
\usepackage{enumitem}
\newlist{enum}{enumerate}{3}
\setlist[enum, 1]{label*=\arabic*., listparindent=21pt, font=\bfseries\tiny, before*=\huge }
\setlist[enum, 2]{label*=\arabic*., listparindent=21pt, font=\bfseries\tiny, before*=\large }
\setlist[enum, 3]{label*=\arabic*., listparindent=21pt, font=\bfseries\tiny, before*=\small }
\setlist[itemize,1]{before*=\tiny}
\setitemize{label=\usebeamerfont*{itemize item}%
\usebeamercolor[fg]{itemize item}
\usebeamertemplate{itemize item}}
\begin{document}
\begin{frame}
\frametitle{Frame title}
\begin{enum}
\item First item
\begin{enum}
\item First subitem
\item Second subitem
\begin{enum}
\item First subitem
\item Second subitem
\begin{itemize}
\item First subitem
\item Second subitem
\end{itemize}
\end{enum}
\end{enum}
\item Second subitem
\end{enum}
\end{frame}
\end{document}
其工作原理如下:
答案2
不要尝试与 beamer 一起使用enumitem
,而是使用 beamer 自己的机制:
\documentclass{beamer}
\usetheme{Dresden}
\useinnertheme{circles}
\setbeamertemplate{enumerate item}[default]
\setbeamertemplate{enumerate subitem}[default]
\setbeamertemplate{enumerate subsubitem}[default]
\setbeamerfont{itemize/enumerate subbody}{size=\footnotesize}
\setbeamerfont{itemize/enumerate subsubbody}{size=\tiny}
\begin{document}
\begin{frame}
\frametitle{Frame title}
\begin{enumerate}
\item First item
\begin{enumerate}
\item First subitem
\item Second subitem
\begin{enumerate}
\item First subitem
\item Second subitem
\end{enumerate}
\end{enumerate}
\item Second subitem
\end{enumerate}
\end{frame}
\end{document}