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
,但首先我们
- 将计数器的旧值保存
equation
为新值, - 将计数器重置
equation
为零, - 通过更新来改变方程数字的外观
\theequation
, - 有
empheq
环境, - 恢复计数器的值
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}