我正在写一个问题,我有类似这样的内容:
\begin{enumerate}
\item Question 1
\begin{enumerate}
\item Choice 1
\item Choice 2
\end{enumerate}
\end{enumerate}
现在我想展示这个问题的解决方案。有没有简单的方法可以做到这一点?我只想要一个简单的东西;使用包会是一种开销。
我尝试\label{answer:q}
在之后添加Choice 2
,但是当我使用时,\ref{answer:q}
它给了我1b
第二个选择,1
这里指的是父级\item
,我可以将其限制为仅让子级\item
获取b
吗?
答案1
您可以重新定义\p@enumii
(使用的前缀):
\documentclass{article}
\makeatletter
\renewcommand\p@enumii{}
\makeatother
\newcommand\Ans[1]{\par The answer is~\ref{#1}.}
\begin{document}
\begin{enumerate}
\item Question 1
\begin{enumerate}
\item Choice 1
\item Choice 2\label{test}
\end{enumerate}
\end{enumerate}
\Ans{test}
\end{document}
在enumitem
包中您可以为选择定义一个专用列表,并且可以轻松自定义用于交叉引用的标签和字符串:
\documentclass{article}
\usepackage{enumitem}
\newlist{choices}{enumerate}{1}
\setlist[choices]{label=(\alph*),ref=(\alph*)}
\newcommand\Ans[1]{\par The answer is~\ref{#1}.}
\begin{document}
\begin{enumerate}
\item Question 1
\begin{choices}
\item Choice 1
\item Choice 2\label{test}
\end{choices}
\end{enumerate}
\Ans{test}
\end{document}