Beamer:枚举子项的格式不一致?

Beamer:枚举子项的格式不一致?

我正在尝试更改枚举项和子项的格式。不幸的是,在将枚举列表嵌套在逐项列表中时,我没有获得一致的行为——所有其他组合都可以

以下是 MWE:

\documentclass{beamer}

\setbeamertemplate{itemize item}{\color{green}\textbullet}
\setbeamertemplate{itemize subitem}{\color{red}\textbullet}

\setbeamertemplate{enumerate item}{\color{green}\insertenumlabel.}
\setbeamertemplate{enumerate subitem}{\color{red}\insertsubenumlabel.}

\begin{document}

\begin{frame}

Pure lists are fine:

\begin{itemize}
\item text
\begin{itemize}
\item text
\end{itemize}
\end{itemize}

\begin{enumerate}
\item text
\begin{enumerate}
\item text
\end{enumerate}
\end{enumerate}

Mixed lists are bad \emph{only} for enumerate:

\begin{enumerate}
\item text
\begin{itemize}
\item text
\end{itemize}
\end{enumerate}

\begin{itemize}
\item text
\begin{enumerate}
\item text
\end{enumerate}
\end{itemize}

\end{frame}

\end{document}

在此处输入图片描述

答案1

由于某种原因,在环境开始时beamer增加计数器\@itemdepth(控制环境嵌套的级别),但不增加环境开始时的计数器(控制环境嵌套的级别) 。itemizeenumerate\@enumdepthenumerateitemize

此补丁将缺失的增量添加到itemize环境中以产生所需的输出。将其添加到您的序言中的某个位置(即和之间\documentclass{beamer}\begin{document}

\usepackage{etoolbox}
\makeatletter
\expandafter\patchcmd\csname\string\itemize\endcsname{\advance\@itemdepth\@ne}{\advance\@itemdepth\@ne\advance\@enumdepth\@ne}{}{}
\makeatother

在此处输入图片描述

相关内容