如何防止 cleveref 在枚举环境中拾取分隔符?

如何防止 cleveref 在枚举环境中拾取分隔符?

我正在用 定义一个新的标签类cleveref,我将其命名为“Cases”。我还用 定义了一个自定义枚举环境enumitem。除其他事项外,我通过传递选项 确保列表中的数字后面有一个点label=\arabic*.。但是,这意味着点是命令\cref在其输出中显示的内容的一部分。请参阅此 MWE:

\documentclass[a4paper,parskip=full-,overfullrule=true]{scrartcl}

% PACKAGES LOADING

\usepackage[capitalise,noabbrev,nameinlink]{cleveref}
\usepackage{enumitem}

\setenumerate{label=\arabic*.,wide=0pt, widest=99,leftmargin=20pt,labelsep=*,topsep=-\parskip,partopsep=0pt,parsep=0pt,itemsep=0pt}

\crefname{case}{Case}{Cases}

\begin{document}

\begin{enumerate}
    \item Whatever fancy text\label[case]{c1}
    \item More fancy text\label[case]{c2}
\end{enumerate}

By \cref{c1}, it must be the case that this text is fancy. By \cref{c2}, it must be the case that this text is twice as fancy.
    
\end{document}

参见此处的输出: 在此处输入图片描述

我想去掉“案例 1。”和“案例 2。”中的点,而不改变列表环境的外观。我一直在检查 的enumitem软件包文档,但没有找到任何有用的信息。你能帮我实现我需要的吗?

答案1

enumitem可以分别设置参考文献的标签和格式。

\setenumerate{
  label=\arabic*.,
  ref=\arabic*,
  wide=0pt,
  widest=99,
  leftmargin=20pt,
  labelsep=*,
  topsep=-\parskip,
  partopsep=0pt,
  parsep=0pt,
  itemsep=0pt
}

不要仅仅label用 来替换ref

请注意,如果嵌套列表,列表看起来会很奇怪。

相关内容