enumitem:引用枚举中的项目

enumitem:引用枚举中的项目

假设我们有一个巨大的文档,其中包含许多sectionssubsectionssubsubsections。在其中一些部分中,我们有enumerated 环境。

我正在使用的包是enumitem

其中一种环境可能如下所示:

\begin{enumerate}
  \item \label{one}
  \item
\end{enumerate}
referring back to \cref{one}

现在如果我稍后引用此项目,它会说:

回顾item 1

\alph我可以有其他带有、等的枚举环境,(\alph)并且可以有参考item (a)或其他东西。

我遇到的问题是,如果我有另一个环境,其中的标准编号从 1 开始到 4,但项目 1 也带有标签,该怎么办?我会item 1在文档中有另一个参考。这hyperref会将其带到不同的列表中,但有没有办法区分打印出来的参考?

这些列表毫无关联,所以我不想在新环境中继续使用旧编号。比如从 3 开始等等。

以下是 MWE:

\documentclass{article}
\usepackage{enumitem}
\usepackage{cleveref}
\begin{document}
\begin{enumerate}
  \item
    one \label{one}
  \item
    two \label{two}
\end{enumerate}
This \cref{two} is great.
\begin{enumerate}
  \item
    one \label{dog}
  \item
    two \label{cat}
\end{enumerate}
This \cref{cat} is a cat.
\end{document}

在此处输入图片描述

有没有办法将其中一个引用改为observation 1而不是item 1?这将是局部更改,而不是全局更改。

答案1

我会考虑定义一个新的列表

\newlist{observations}{enumerate}{10}
\setlist[observations]{label*=\arabic*}

然后进行crefname相应的调整

\crefname{observationsi}{observation}{obvservations}
\Crefname{observationsi}{Observation}{Obvservations}

输出如下

截屏

以及完整的 MWE 供您使用

% arara: pdflatex
\documentclass{article}
\usepackage{enumitem}
\usepackage{cleveref}

\newlist{observations}{enumerate}{10}
\setlist[observations]{label*=\arabic*}

\crefname{observationsi}{observation}{obvservations}
\Crefname{observationsi}{Observation}{Obvservations}

\begin{document}
\begin{enumerate}
  \item
    one \label{one}
  \item
    two \label{two}
\end{enumerate}
This \cref{two} is great.
\begin{observations}
  \item one \label{dog}
  \item two \label{cat}
\end{observations}
This \cref{cat} is a cat.
\end{document}

答案2

使用enumitemlabel和键ref在使用时为每个项目或参考文本产生不同的打印标签\ref

在此处输入图片描述

\documentclass{article}
\usepackage{enumitem,cleveref}% http://ctan.org/pkg/{enumitem,cleveref}
\begin{document}
\begin{enumerate}
  \item
    one \label{one}
  \item
    two \label{two}
\end{enumerate}
This \cref{two} is great.
\begin{enumerate}[ref={observation~\arabic*}]
  \item
    one \label{dog}
  \item
    two \label{cat}
\end{enumerate}
This \ref{cat} is a cat.
\end{document}

相关内容