假设我们有一个巨大的文档,其中包含许多sections
、subsections
和subsubsections
。在其中一些部分中,我们有enumerate
d 环境。
我正在使用的包是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
使用enumitem
label
和键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}