我需要交叉引用枚举中的项目。这是我所拥有的。
\documentclass[12pt]{article}
\begin{document}
\begin{enumerate}
\item Solve $x^2=1$.
\item Solve $x^2=4$.
\begin{enumerate}
\item \label{enum:1} Find all roots.
\item For each root in (\ref{enum:1}), subtract 2 from it.
\end{enumerate}
\end{enumerate}
\end{document}
运行正常,但我想在最后一行使用 (a) 而不是 (2a)。换句话说,我只想在当前枚举中使用标签。谢谢。
答案1
这是使用该enumitem
包的另一种解决方案。通过它我们可以配置对项目的引用的外观。在这个 MWE 中,我enumerate
全局更改了第二级的引用格式。
另外一个好处是我们不用处理内部事务。
\documentclass[12pt]{article}
\usepackage{enumitem}
\setlist[enumerate,2]{
ref=(\alph*),
}
\begin{document}
\begin{enumerate}
\item Solve $x^2=1$.
\item Solve $x^2=4$.
\begin{enumerate}
\item \label{enum:1} Find all roots.
\item For each root in \ref{enum:1}, subtract 2 from it.
\end{enumerate}
\end{enumerate}
\end{document}
答案2
关键是重新定义宏\p@enumii
,它包含这种情况下使用的前缀:
\documentclass[12pt]{article}
\begin{document}
\begin{enumerate}
\item Solve $x^2=1$.
\item Solve $x^2=4$.
\begin{enumerate}
\makeatletter
\renewcommand*\p@enumii{}
\makeatother
\item \label{enum:1} Find all roots.
\item For each root in (\ref{enum:1}), subtract 2 from it.
\end{enumerate}
\item To show that the redefinition is local:
\begin{enumerate}
\item \label{enum:2} Find all roots.
\item For each root in (\ref{enum:2}), subtract 2 from it.
\end{enumerate}
\end{enumerate}
\end{document}