下列的主题1和主题2,我已经实现了 Mico 的答案。现在,我也想引用此枚举下的方程式。例如,
\documentclass{article}
\usepackage{amsmath}
\usepackage{hyperref}
\usepackage{enumitem,cleveref}
\newlist{myenum}{enumerate}{3}
\setlist[myenum,1]{label=\textbf{\arabic*.},
ref =\arabic*}
\setlist[myenum,2]{label=\textbf{(\alph*)},
ref =\themyenumi.(\alph*)}
\setlist[myenum,3]{label=\bfseries(\roman*),
ref =\themyenumii.(\roman*)}
\numberwithin{equation}{myenumi}
\begin{document}
\begin{myenum}
\item
\begin{equation}\label{eq:euler}
e^{i\pi}+1 = 0
\end{equation}
\end{myenum}
As shown in \cref{eq:euler}.
\end{document}
但是,这些行让我遇到了这个错误:“缺少 \endcsname 插入。\begin{equation}”。您知道为什么会发生这种情况吗?或者如何解决?谢谢。
编辑:我发现在包含该\usepackage{hyperref}
行时会发生这种情况。
答案1
我怀疑您遇到了enumitem
和hyperref
包之间的不兼容问题。恐怕我无法提供完整的修复。我只能建议您不要使用该包,enumitem
而是修改低级宏\theenumi
、、、、、等。\labelenumi
\theenumii
\labelenumii
\p@enumii
\documentclass{article}
\usepackage{amsmath}
\usepackage{hyperref}
\usepackage{cleveref}
\renewcommand{\theenumi}{\arabic{enumi}}
\renewcommand{\theenumii}{(\alph{enumii})}
\renewcommand{\theenumiii}{(\roman{enumiii})}
\renewcommand{\labelenumi}{\textbf{\theenumi.}}
\renewcommand{\labelenumii}{\textbf{\theenumii}}
\renewcommand{\labelenumiii}{\textbf{\theenumiii}}
\makeatletter
\renewcommand\p@enumii{\theenumi} % "prefixes" for use in cross-references
\renewcommand\p@enumiii{\theenumi\theenumii}
\makeatother
\numberwithin{equation}{enumi}
\begin{document}
\begin{enumerate}
\item
\begin{equation}\label{eq:euler}
e^{i\pi}+1 = 0
\end{equation}
\end{enumerate}
As shown in \cref{eq:euler}, \dots
\end{document}