如何根据 beamer 中枚举项列表中的不同级别设置不同的字体大小?

如何根据 beamer 中枚举项列表中的不同级别设置不同的字体大小?

我使用 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} 

在此处输入图片描述

相关内容