cleveref 列表使用“或”而不是“和”

cleveref 列表使用“或”而不是“和”

有时我想写\cref{item1,,item2,,item3}“项目 1、项目 2 或项目 3”,而不是“项目 1、项目 2 和项目 3”。

这可以临时完成吗?

答案1

这是可以做到的,但并不简单。请参阅文档这个问题有一个比下面我的答案更简单的答案(但请注意问题下的最后一条评论)。在我的答案中,您还需要指定计数器:

\usepackage{etoolbox}
\usepackage{cleveref}
\makeatletter
\newcommand{\crefor}[2]{%
  \crefmultiformat{#1}{\csuse{cref@#1@name}~##2##1##3}%
    { or~\csuse{cref@#1@name}~##2##1##3}%
    {, \csuse{cref@#1@name}~##2##1##3}%
    {, or~\csuse{cref@#1@name}~##2##1##3}%
  \cref{#2}%
  \crefmultiformat{#1}{\csuse{cref@#1@name@plural}~##2##1##3}%
    { and~##2##1##3}{, ##2##1##3}{, and~##2##1##3}%
}
\makeatother

您将其用作\crefor{<counter>}{item1,,item2,,item3}。您还需要为 创建一个\Cref,并且可能还要添加\crefrangemultiformat\Crefrangemultiformat。如果您希望在方程数字周围加上括号,那么情况会变得更加复杂。

我让你决定是否要使用牛津逗号。

相关内容