此示例不适用于最新版本的cleveref
。
Refer to . 行\crefrange{eqa}{eqc}
给出输出:
Refer to ?? 1–3.
它以前曾经起作用。
有人能解释一下如何解决这个问题吗?
\documentclass{article}
\usepackage{amsmath,cleveref}
\begin{document}
\begin{subequations}
\label{eqa}
\begin{align}
a &= b\\
c &= d
\end{align}
\end{subequations}
\begin{subequations}
\label{eqba}
\begin{align}
e &= f\\
g &= h
\end{align}
\end{subequations}
\begin{equation}
\label{eqc}
i = j
\end{equation}
Refer to \crefrange{eqa}{eqc}.
\end{document}
答案1
(答案基于这个帖子以及@egreg 评论说subequations
环境管理已经改变。)
您可以通过可选参数强制将环境的顶级标签subequations
视为-environment 标签:equations
\label
\begin{subequations}
\label[equation]{eqlabel}
[...]
\end{subequations}
您的 MWE 看起来像这样(添加了额外的子方程标签以表明这不会影响顶级标签行为):
\documentclass{article}
\usepackage{amsmath,cleveref}
\begin{document}
\begin{subequations}
\label[equation]{eqa}
\begin{align}
\label{subeqa1}
a &= b \\
\label{subeqa2}
c &= d
\end{align}
\end{subequations}
\begin{subequations}
\label[equation]{eqb}
\begin{align}
\label{subeqb1}
e &= f \\
\label{subeqb2}
g &= h
\end{align}
\end{subequations}
\begin{equation}
\label{eqc}
i = j
\end{equation}
Refer to \crefrange{eqa}{eqc}.
\end{document}
编辑:缺点
似乎声明为的标签\label[equation]{...}
被 RefTeX 忽略了。如果习惯使用 RefTeX,那么添加对一组子方程的顶级标签的引用会变得不太方便。我想应该有一种简单的方法来解决这个问题,但我不知道怎么做。
答案2
我在使用 cleveref 0.19 版本时也遇到了同样的问题(参见上述 egreg 的评论)。我通过以下方法修复了这个问题:
\crefalias{subequation}{equation}
在序言中。
(如果此修复程序有些不妥或应避免,请发表评论)