我想要一个类似于以下代码生成的列表:
\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}