17

Say we have a huge document with many sections, subsections, and subsubsections. In a few of these sections, we have enumerated environments.

The package I am using is enumitem.

One of the environments could look like:

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

Now if I reference this item later, it will say:

referring back to item 1

I could have other enumerated environments with \alph, (\alph), etc. and there reference could be item (a) or something.

The problem I have is what if I have another environment with the standard numbers that starts from 1 and goes to 4 but item 1 is also labeled. I would have another item 1 reference in the document. The hyperref would take it to a different list but is there a way to differentiate the printed out reference?

The list are unrelated so I don't want to start the new environment continuing the old numbering. Say starting from 3 and so on.

Here is a 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}

enter image description here

Would there be a way to change one of the references to observation 1 instead of item 1? This would be a local change nor global.

2 Answers 2

8

I would consider defining a new list

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

and then tweaking crefname accordingly

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

Here's the output

screenshot

and a complete MWE to play with

% 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}
4
  • 1
    Note that the observations in the output lack a dot after the number. To fix that, use \setlist[observations]{label*=\arabic{*}.} Commented Jan 10, 2022 at 10:03
  • Great. Feel free to edit :)
    – cmhughes
    Commented Jan 10, 2022 at 11:05
  • Should we use ~ before \cref{cat}? Why do we use obvservations instead of observations ?
    – alper
    Commented Apr 26, 2022 at 23:33
  • @alper feel free to edit
    – cmhughes
    Commented Apr 27, 2022 at 5:48
15

Use enumitem's label and ref keys to yield a different printed label for each item or reference text when using \ref:

enter image description here

\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}
9
  • Do you know of any possible conflicts? I used this procedure and it printed out item observation 2.
    – dustin
    Commented Aug 16, 2013 at 22:42
  • @dustin: Note that I'm using \ref and not \cref.
    – Werner
    Commented Aug 16, 2013 at 22:43
  • How can we get \cref to work enumitem?
    – dustin
    Commented Aug 16, 2013 at 22:44
  • @dustin: cleveref provides \labelcref which does the same as \ref. Are you after using a regular \cref that produces item X in one instance, but observation Y in another?
    – Werner
    Commented Aug 16, 2013 at 23:01
  • I dont quite understand your question but cmhughes was able to solve the problem by creating a new list.
    – dustin
    Commented Aug 16, 2013 at 23:06

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .