subnumcases 环境中的交叉引用方程

subnumcases 环境中的交叉引用方程

subnumcases当尝试交叉引用环境中的一个多案例方程时cleveref只显示方程编号而不显示字母。例子:

\documentclass{article}
\usepackage{cases}
\usepackage{cleveref}
\begin{document}

\begin{subnumcases}{y=}
   x^2 + 1, & $n = 1$ \label{eq:1}\\
   3x^2 + 2, & $n > 1$ \label{eq:2}
\end{subnumcases}

We first want to refer to equation 1a with \Cref{eq:1}.
Then to equation 1b with \Cref{eq:2}.

\end{document}

输出:

在此处输入图片描述

这里出了什么问题?

答案1

一个快速而肮脏的破解方法是链接问题的解决方案,并按以下方式改变它:我们定义一个新的环境mysubnumcases,它包含empheq,但首先我们

  1. 将计数器的旧值保存equation为新值,
  2. 将计数器重置equation为零,
  3. 通过更新来改变方程数字的外观\theequation
  4. empheq环境,
  5. 恢复计数器的值equation

所以我们有:

\documentclass{article}
\usepackage{empheq} % loading `mathtools` % loading `amsmath`
\usepackage{cleveref} % load this as very last package

\newcounter{case}
\newenvironment{mysubnumcases}{
    \begingroup
    \stepcounter{equation}
    \setcounter{case}{\theequation}
    \setcounter{equation}{0}
    \renewcommand\theequation{\arabic{case}\alph{equation}}
    \empheq[left={=\empheqbiglbrace~}]{align}
}{
    \endempheq
    \setcounter{equation}{\thecase}
    \endgroup
}
\begin{document}    
    \section{Intro} 
    \begin{equation}
        A=B \label{eq1}
    \end{equation}
    Some text
    \begin{mysubnumcases}
        a&=b\label{eq2}\\
        c&=d\label{eq3}
    \end{mysubnumcases}
    Some text
    \begin{equation}
        A=B \label{eq4}
    \end{equation}
    Cleveref references: \cref{eq1} \cref{eq2} \cref{eq3} \cref{eq4}.
\end{document}

在此处输入图片描述

相关内容