You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Beamer环境下引用嵌套enumerate项显示完整编号的方法

Beamer嵌套enumerate引用显示完整层级编号的解决方案

方法一:利用Beamer原生机制(无需enumitem)

直接修改Beamer的enumerate模板,定义各层级的编号格式,确保引用时能获取完整层级编号:

\documentclass{beamer}

% 配置第一层枚举项的编号格式
\setbeamertemplate{enumerate item}{\insertenumlabel.}
% 配置第二层枚举项的编号格式,包含上层编号
\setbeamertemplate{enumerate subitem}{\insertenumlabel.\insertsubenumlabel}

\begin{document}
\begin{frame}
\begin{enumerate}
  \item 第一层项目 \label{n1}
  \begin{enumerate}
    \item 第二层项目 \label{n2}
    \item 另一第二层项目
  \end{enumerate}
\end{enumerate}

引用第一层:\ref{n1} \\
引用第二层:\ref{n2} % 输出为1.1
\end{frame}
\end{document}

方法二:兼容enumitem包加载

若必须使用enumitem,需通过shortlabels选项加载以避免与Beamer样式冲突,同时配置各层级编号格式:

\documentclass{beamer}
% 带shortlabels选项加载enumitem,减少与Beamer的兼容性问题
\usepackage[shortlabels]{enumitem}

% 定义枚举层级的编号格式
\setlist[enumerate,1]{label=\arabic*.}
\setlist[enumerate,2]{label=\theenumi.\arabic*.}
% 如需第三层,可添加:\setlist[enumerate,3]{label=\theenumii.\arabic*.}

\begin{document}
\begin{frame}
\begin{enumerate}
  \item 第一层项目 \label{n1}
  \begin{enumerate}
    \item 第二层项目 \label{n2}
    \item 另一第二层项目
  \end{enumerate}
\end{enumerate}

引用第一层:\ref{n1} \\
引用第二层:\ref{n2} % 输出为1.1
\end{frame}
\end{document}

注意事项

  • 直接加载enumitem而不加shortlabels会覆盖Beamer默认的列表样式,引发兼容性问题,因此该选项是必须的。
  • 两种方法均能保证嵌套项的\ref命令输出完整的层级编号(如1.2),而非仅子编号。

内容的提问来源于stack exchange,提问作者LynnH

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 22:36:00