![如何根据 beamer 中枚举项列表中的不同级别设置不同的字体大小?](https://linux22.com/image/263855/%E5%A6%82%E4%BD%95%E6%A0%B9%E6%8D%AE%20beamer%20%E4%B8%AD%E6%9E%9A%E4%B8%BE%E9%A1%B9%E5%88%97%E8%A1%A8%E4%B8%AD%E7%9A%84%E4%B8%8D%E5%90%8C%E7%BA%A7%E5%88%AB%E8%AE%BE%E7%BD%AE%E4%B8%8D%E5%90%8C%E7%9A%84%E5%AD%97%E4%BD%93%E5%A4%A7%E5%B0%8F%EF%BC%9F.png)
我使用 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}