我有一个类似定理的环境,examples
它总是会在其主体中包含一个枚举。使用cleveref
,我如何才能用复数名称“Examples”引用整个环境(即所有枚举项),而用单数名称“Example”引用其中的单个项?(并且再次使用复数名称“Examples”引用其中的一系列项?)
示例来源:
\documentclass[12pt]{memoir}
\usepackage{amsthm}
\usepackage{thmtools}
\usepackage{enumitem}
\usepackage[colorlinks=true,linkcolor=red]{hyperref}
\usepackage[nameinlink,noabbrev,capitalize]{cleveref}
\swapnumbers
\declaretheoremstyle[
headfont= \sffamily\bfseries,
headpunct={\sffamily\bfseries.},
postheadspace=0.5em,
notefont=\sffamily\bfseries,
headformat=\NAME\NUMBER\let\thmt@space\@empty\NOTE,
bodyfont=\mdseries\itshape,
spaceabove=12pt,spacebelow=12pt
]{thmstyle}
\theoremstyle{thmstyle}% default
\declaretheorem[name=Theorem,numberwithin=chapter]{theorem}
\declaretheoremstyle[
headfont= \sffamily\bfseries,
headpunct={\sffamily\bfseries.},
postheadspace=0.5em,
notefont=\sffamily\bfseries,
bodyfont=\normalfont,
spaceabove=12pt,spacebelow=12pt
]{defstyle}
\theoremstyle{defstyle}
\newtheorem{examples}[theorem]{Examples}
\newlist{parensenum}{enumerate}{3}
\setlist[parensenum,1]{%
label= \upshape(\arabic*),
ref={\arabic*}, % strips formatting!
}
\crefname{examples}{Examples}{Examples}
\Crefname{examples}{Examples}{Examples}
\crefname{parensenumi}{}{}
\crefformat{parensenumi}{(#2#1#3)}
\Crefformat{parensenumi}{(#2#1#3)}
\begin{document}
\chapter{Chapter}
\section{Section}
\large % for visibility in posting
\begin{examples}\label{exs:several-exs}
\begin{parensenum}
\item\label{ex:one} First example.
\item\label{ex:two} Second example.
\item\label{ex:three} Third example.
\end{parensenum}
\end{examples}
\textbf{References}
\begin{itemize}
\item \cref{exs:several-exs}. [OK as is.]
\item \cref{exs:several-exs} \cref{ex:two}. [Want singular ``Example'' in hyperlink.]
\item \crefrange{ex:two}{ex:three}. [Want hyperlink: Examples 1.1 (2)--(3).]
[Can do this too verbosely as: \cref{exs:several-exs} \cref{ex:two}--\cref{ex:three}.]
\end{itemize}
\end{document}
问题)
我的主要问题是如何折磨cref
,或者以其他方式,以便使对环境内枚举列表中单个项目的引用examples
使用单数“Example”而不是“Examples”,同时仍然保留对整个环境的引用中的复数“Examples” examples
。
(如果我必须使用指示的详细形式来获取对枚举列表中一系列项目的引用,那没问题 - 尽管我不希望这样做。)
如果它使得解决方案成为可能,甚至变得更容易,我愿意放弃nameinlinks
选择cleveref
。