我想引用两级枚举环境的项目编号。下面的代码给出了正确的项目编号,但当我在文本中引用它时,出现了问题 - 请参阅下面的代码。它当然应该说“我更喜欢选项 2.1”。感谢您的帮助。
\documentclass[11pt]{article}
\renewcommand{\theenumii}{\theenumi.\arabic{enumii}}
\renewcommand{\labelenumii}{\theenumii}
\begin{document}
\begin{enumerate}
\item Hallo
\item Hi
\begin{enumerate}
\item \label{item-one} Good By
\item \label{item-two} Have a nice time
\end{enumerate}
\end{enumerate}
I prefer option \ref{item-one}
\end{document}
答案1
我建议使用枚举项包,因为它使这样的事情变得非常简单。对于您的示例,您可以生成
使用代码:
\documentclass[11pt]{article}
\usepackage{enumitem}
\begin{document}
\begin{enumerate}
\item hallo
\item hi
\begin{enumerate}[label=\arabic{enumi}.\arabic*]
\item \label{item-one} good by
\item \label{item-two} have a nice time
\end{enumerate}
\end{enumerate}
I prefer option \ref{item-one}
\end{document}
还提供了许多其他功能enumitem
来定制enumerate
、itemize
和description
环境,包括定义每个环境的变体。有关详细信息,请参阅手册。
答案2
你快到了。而不是
\renewcommand{\theenumii}{\theenumi.\arabic{enumii}}
\renewcommand{\labelenumii}{\theenumii}
尝试
\renewcommand{\theenumii}{\arabic{enumii}}
\renewcommand{\labelenumii}{\theenumi.\theenumii}
\makeatletter
\renewcommand{\p@enumii}{\theenumi.} % for cross-references
\makeatletter