![如何在交叉引用/列表计数器中获取带有字母(alph)的字母?](https://linux22.com/image/471832/%E5%A6%82%E4%BD%95%E5%9C%A8%E4%BA%A4%E5%8F%89%E5%BC%95%E7%94%A8%2F%E5%88%97%E8%A1%A8%E8%AE%A1%E6%95%B0%E5%99%A8%E4%B8%AD%E8%8E%B7%E5%8F%96%E5%B8%A6%E6%9C%89%E5%AD%97%E6%AF%8D%EF%BC%88alph%EF%BC%89%E7%9A%84%E5%AD%97%E6%AF%8D%EF%BC%9F.png)
如何在枚举项 (alph) ref/label 中的交叉引用 (label/ref) 中获取字母而不是数字?
或者有任何使用出色的 cleverref 包的解决方案吗?
\documentclass[12pt]{exam}
\usepackage[utf8]{inputenc}
\usepackage[spanish]{babel}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{enumitem}
%\usepackage{hyperref}
%\hypersetup{colorlinks=true, urlcolor=blue}
%\usepackage[spanish]{cleveref}
\renewcommand{\labelenumi}{\alph{enumi}) }
\begin{document}
\begin{questions}
\question \label{sumas} Calculate:
\begin{enumerate}
\item \label{sumas-cinco} $5+5+5=$
\item \label{sumas-nueve} $9+9+9+9=$
\end{enumerate}
You can see at \ref{mult} \ref{mult-cinco} a faster version of \ref{sumas} \ref{sumas-cinco}.
\question \label{mult} Calculate:
\begin{enumerate}
\item \label{mult-cinco} $3\cdot5=$
\item \label{mult-nueve} $4\cdot9=$
\end{enumerate}
The exercise \ref{mult} is a faster versión of \ref{sumas}.
\end{questions}
\end{document}
答案1
使用时enumitem
,不要重新定义,\labelenumi
而是使用包的用户界面,例如:
\documentclass[12pt]{exam}
\usepackage[utf8]{inputenc}
\usepackage[spanish]{babel}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{enumitem}
%\usepackage{hyperref}
%\hypersetup{colorlinks=true, urlcolor=blue}
%\usepackage[spanish]{cleveref}
\setlist[enumerate,1]{label=\alph{*})}
\begin{document}
\begin{questions}
\question \label{sumas} Calculate:
\begin{enumerate}
\item \label{sumas-cinco} $5+5+5=$
\item \label{sumas-nueve} $9+9+9+9=$
\end{enumerate}
You can see at \ref{mult} \ref{mult-cinco} a faster version of \ref{sumas} \ref{sumas-cinco}.
\question \label{mult} Calculate:
\begin{enumerate}
\item \label{mult-cinco} $3\cdot5=$
\item \label{mult-nueve} $4\cdot9=$
\end{enumerate}
The exercise \ref{mult} is a faster versión of \ref{sumas}.
\end{questions}
\end{document}
或者
\documentclass[12pt]{exam}
\usepackage[utf8]{inputenc}
\usepackage[spanish]{babel}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{enumitem}
%\usepackage{hyperref}
%\hypersetup{colorlinks=true, urlcolor=blue}
%\usepackage[spanish]{cleveref}
\setlist[enumerate,1]{label=\alph{*}),ref=\alph{*}}
\begin{document}
\begin{questions}
\question \label{sumas} Calculate:
\begin{enumerate}
\item \label{sumas-cinco} $5+5+5=$
\item \label{sumas-nueve} $9+9+9+9=$
\end{enumerate}
You can see at \ref{mult} \ref{mult-cinco} a faster version of \ref{sumas} \ref{sumas-cinco}.
\question \label{mult} Calculate:
\begin{enumerate}
\item \label{mult-cinco} $3\cdot5=$
\item \label{mult-nueve} $4\cdot9=$
\end{enumerate}
The exercise \ref{mult} is a faster versión of \ref{sumas}.
\end{questions}
\end{document}
看用户enumitem
手册label=<commands>
第 2 节“快速参考”提供了类似示例,第 3.1 节“标签和交叉引用格式”提供了和的文档ref=<commands>
。
如果对问题内部枚举的引用始终应包含问题编号,那么您还可以执行以下操作:
\documentclass[12pt]{exam}
\usepackage[utf8]{inputenc}
\usepackage[spanish]{babel}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{enumitem}
%\usepackage{hyperref}
%\hypersetup{colorlinks=true, urlcolor=blue}
%\usepackage[spanish]{cleveref}
\setlist[enumerate,1]{label=\alph{*})}
\begin{document}
\begin{questions}
\question \label{sumas} Calculate:
\begin{enumerate}[ref=\ref{sumas}\alph{*}]% use a label to show the question number
\item \label{sumas-cinco} $5+5+5=$
\item \label{sumas-nueve} $9+9+9+9=$
\end{enumerate}
You can see at \ref{mult-cinco} a faster version of \ref{sumas-cinco}.
\question \label{mult} Calculate:
\begin{enumerate}[ref=\thequestion\alph{*}]% use the question number directly
\item \label{mult-cinco} $3\cdot5=$
\item \label{mult-nueve} $4\cdot9=$
\end{enumerate}
The exercise \ref{mult} is a faster versión of \ref{sumas}.
\end{questions}
\end{document}
答案2
您似乎没有利用该enumitem
软件包的机制。如果这个印象是正确的,那么您需要重新定义两者\theenumi
和\labelenumi
您自己。为了保险起见,我还将重新定义“前缀宏”,\p@enumi
以简化创建对 1 级项目的交叉引用。
请注意,我会不是包括)
在交叉引用“编号”中。
\documentclass[12pt]{exam}
% \usepackage[utf8]{inputenc} % that's the default nowadays
\usepackage[T1]{fontenc}
\usepackage[spanish]{babel}
\usepackage{amsmath,amssymb}
\renewcommand{\labelenumi}{\alph{enumi})}
\renewcommand{\theenumi}{\alph{enumi}}
\makeatletter
\renewcommand{\p@enumi}{\thequestion}
\makeatother
\begin{document}
\begin{questions}
\question \label{sumas} Calculate:
\begin{enumerate}
\item \label{sumas-cinco} $5+5+5=$
\item \label{sumas-nueve} $9+9+9+9=$
\end{enumerate}
\question \label{mult} Calculate:
\begin{enumerate}
\item \label{mult-cinco} $3\cdot5=$
\item \label{mult-nueve} $4\cdot9=$
\end{enumerate}
\end{questions}
\noindent
You can see that \ref{mult-cinco} is faster than \ref{sumas-cinco}.
\noindent
Exercise \ref{mult} is a faster version of exercise \ref{sumas}.
\end{document}