使用 cleveref 更改‘enumi’的本地名称?

使用 cleveref 更改‘enumi’的本地名称?

我希望将“项目”一词改为“假设”具体的枚举环境,使其保持不变,以供文档后面的其他环境使用。通过 提供的命令\crefname和仅在全局范围内执行此操作。(我还使用。)\Crefnamecleverefenumitem

具体来说,我希望最后一行

\begin{enumerate}[label=\textbf{\arabic*.}, ref=\textbf{\arabic*}]
 \item\label{1} Blah
 \item\label{2} Blah
 \item\label{3} Blah
\end{enumerate}

See \cref{2,3}.

呈现为“参见假设 2 和 3。”我该怎么做呢?

答案1

您可以利用\crefalias宏和cleveref提供可选参数的功能来\label实现格式化目标。

在此处输入图片描述

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{enumitem}
\usepackage{cleveref}

% Create an alias for 'item' (of enumi level):
\crefalias{postulate}{enumi}
\crefname{postulate}{postulate}{postulates}
\Crefname{postulate}{Postulate}{Postulates}

\begin{document}
\begin{enumerate}[label=\textbf{\arabic*.}, 
                  ref=\arabic*]
   \item\label[postulate]{1} Blah % note use of optional argument of \label
   \item\label[postulate]{2} Blah % ditto
   \item\label[postulate]{3} Blah % ditto
\end{enumerate}
See \cref{2,3}.
\end{document}

答案2

我建议定义一个新的类似枚举的环境,并为 cleverref 适当定义交叉引用。请注意,如果您有一个 cleveref.cfg 文件,则必须将定义放在此文件中。

\documentclass[11pt]{article}
\usepackage{enumitem}
\usepackage{cleveref} 

\newlist{postulates}{enumerate}{1}
\setlist[postulates]{label = \arabic*, font = \bfseries}

\crefname{postulatesi}{postulate}{postulates}
\Crefname{postulatesi}{Postulate}{Postulates}

\begin{document}

\begin{postulates}
 \item\label{1} Blah. 
 \item\label{2} Blah blah. 
 \item\label{3} Blah blah blah. 
\end{postulates}

See \cref{2,3}. \Cref{1} instead, perhaps. 

\end{document} 

在此处输入图片描述

相关内容