答案1
在下面amsart
引用前缀(用\p@
-style 宏表示)的每个级别都enumerate
设置为分层的,从而继承了上一级的前缀。您可以在序言中删除此前缀。
\documentclass{amsart}
\makeatletter
\renewcommand{\p@enumii}{}% Remove prefix for second-level enumerate item
\makeatother
\begin{document}
\begin{enumerate}
\item\label{1} ABCD
\begin{enumerate}
\item\label{a} xyz
\end{enumerate}
\end{enumerate}
Now refer to (\ref{a}).
\end{document}
请注意,不需要对标签进行格式化,因为默认设置与您预期的输出相匹配。
答案2
这是一个快速而粗略的方法:\usepackage[shortlabels]{enumitem}
用或enumerate
来代替。这使用了正确的标签。label={(\alph*)}]
\begin{enumerate}[(a)]
\documentclass{amsart}
%\usepackage{enumerate}
\usepackage[shortlabels]{enumitem}
\begin{document}
\begin{enumerate}[(1),leftmargin=*]
\item\label{1} ABCD
\begin{enumerate}[label={(\alph*)}]
\item\label{a} xyz
\end{enumerate}
\end{enumerate}
Now refer to \ref{a}.
\end{document}