如何在交叉引用/列表计数器中获取带有字母(alph)的字母?

如何在交叉引用/列表计数器中获取带有字母(alph)的字母?

我想获得这个 在此处输入图片描述

如何在枚举项 (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} 

2 a) 1 a)

或者

\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} 

2 一 1 一

用户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} 

相关内容