带有相关编号的自定义列表

带有相关编号的自定义列表

我想要一个类似于以下代码生成的列表:

\documentclass{article}
\usepackage{enumitem}
\begin{document}
\begin{enumerate}[label={Aim (\alph*)}]
\item\label{item:this} Do this.
\item\label{item:that} Do that.
\item\label{item:these} Do these.
\end{enumerate}
\end{document}

因此它看起来会像这样:

目标(a) 做到这一点。

目标 (b) 做到这一点。

目标(c) 做到这些。

所以这清楚地列出了我的目标。但是,我想引用编号没有“目标”这个词。例如,我想要

I will achieve Aims \ref{item:this}--\ref{item:these}.

呈现为

“我将实现目标(a)至(c)。”

目前,它呈现为

“我将实现目标(a)至目标(c)。”

我怎样才能做到这一点?

答案1

enumitem包允许ref选择更改偏离label内容的交叉引用格式。

\documentclass{article}
\usepackage{enumitem}
\begin{document}

I will achieve Aims \ref{item:this} -- \ref{item:these}.

\begin{enumerate}[label={Aim (\alph*)},ref={(\alph*)}]
\item\label{item:this} Do this.
\item\label{item:that} Do that.
\item\label{item:these} Do these.
\end{enumerate}
\end{document}

在此处输入图片描述

提供特殊列表“目的”:

\documentclass{article}
\usepackage{enumitem}
\begin{document}

I will achieve Aims \ref{item:this} -- \ref{item:these}.

\newlist{aims}{enumerate}{1}
\setlist[aims,1]{label={Aim (\alph*)},ref={(\alph*)}}


\begin{aims}
\item\label{item:this} Do this.
\item\label{item:that} Do that.
\item\label{item:these} Do these.
\end{aims}
\end{document}

答案2

您可以定义专用的列表环境,aims并使用cleveref,以节省一些输入:

\documentclass[twocolumn]{article}
\usepackage{enumitem}
\usepackage{cleveref}
\newlist{aims}{enumerate}{1}
\setlist[aims, 1]{label = Aim (\alph*) , ref = (\alph*) }
\crefname{aimsi}{aim}{aims}
\creflabelformat{aimsi}{#2#1#3}

\begin{document}

\begin{aims}
\item\label{aim:this} Do this.
\item\label{aim:that} Do that.
\item\label{aim:these} Do these.
\end{aims}
\Cref{aim:this}--\cref{aim:these} will be achieved, or \cref{aim:this,aim:that,aim:these}.

\end{document} 

在此处输入图片描述

相关内容