对于代码
\begin{subequations}\label{eq:sub}
\begin{gather}
\frac{\text{d}b_1}{\text{d}z} - \im\beta_1b_1 = C_{12}b_2,\\
\frac{\text{d}b_2}{\text{d}z} - \im\beta_2b_2 = C_{21}b_1.
\end{gather}
\end{subequations}
使用 时\mathtoolsset{showonlyrefs=true,showmanualtags=true}
,\eqref
正确引用了方程组编号,但是方程本身在文档中没有编号(因此,前一个方程是 (2.7),下一个方程是 (2.9),没有编号 2.8a 和 2.8b)。这是意料之中的事吗?有解决方法吗?
答案1
一种解决方法可能是标记两个内部方程并用来\noeqref
默默引用它们。目前showonlytags
没有考虑子方程,可能难以实现。
工作原理如下showonlyrefs
。\eqref
设置一个特殊标记label
来标记引用的给定标签。mathtools
更改方程编号的排版方式以查看本地标签是否已标记。如果没有,则不进行排版。
这里的问题是,聚集内的等式数字排版员永远不会看到外部标签。
编辑:这有效。顺便说一句:下次请发布一个最小示例,而不是片段,我不知道那\im
是什么。
\documentclass[a4paper]{article}
\usepackage{mathtools}
\mathtoolsset{showonlyrefs=true,showmanualtags=true}
\begin{document}
\begin{subequations}\label{eq:sub}
\noeqref{eq:1,eq:2}
\begin{gather}
\frac{\text{d}b_1}{\text{d}z} - \beta_1b_1 = C_{12}b_2,\label{eq:1}\\
\frac{\text{d}b_2}{\text{d}z} - \beta_2b_2 = C_{21}b_1.\label{eq:2}
\end{gather}
\end{subequations}
\eqref{eq:sub}
\end{document}