方程式引用通过“或”连接

方程式引用通过“或”连接

使用cleveref,运行该命令 \cref{e1,e2} 会打印出类似于“eqs. (1) and (2)”或“eqs. (1)—(2)”的内容。如果我需要在特定的交叉引用中使用“and”而不是“or”,该怎么办?我预计我应该使用

\newcommand\crefpairconjunction{<conjunction>}

在序言中,但我不知道如何使这种改变有条件而不是全局的,例如通过像这样的命令访问\cref[or]{e1,e2}

答案1

在特定情况下,您应避免\cref{e1} or~\cref{e2}给读者留下歧义。

如果坚持的话,可以在本地重新定义相关的宏。

\documentclass{article}
\usepackage{amsmath}
\usepackage{cleveref}

\newcommand{\crefor}[1]{%
  {% start a group
   \providecommand{\crefpairconjunction}{}% initialize
   \renewcommand{\crefpairconjunction}{~or~}% want `or'
   \cref{#1}%
  }% end the group
}

\begin{document}

An equation
\begin{equation}\label{e1}
a=b
\end{equation}
and another one
\begin{equation}\label{e2}
c=d
\end{equation}
Now we reference \crefor{e1,e2}; also \cref{e1,e2}.

\end{document}

在此处输入图片描述

答案2

这个答案可能有点笨拙,但你可以定义一个命令,当你想要在中间插入不同的单词时,它会改变 \crefpairconjunction。不过,之后你必须把它改回来。

\newcommand\myConj[1]{\renewcommand\crefpairconjunction{#1}}

\begin{equation}\label{e1}
x^2n
\end{equation}

\begin{equation}\label{e2}
2x^n
\end{equation}

\cref{e1,e2}
    
\myConj{ or~}
    
\cref{e1,e2}

在此处输入图片描述

相关内容