首先:几天前我发布了这个问题LaTeX 社区但我没有得到答复所以我将其发布在这里。
考虑以下 MWE:
\documentclass[danish]{article}
\usepackage{babel}
\usepackage{mathtools}
\usepackage{enumitem}
\usepackage{hyperref}
\mathtoolsset{showonlyrefs}
\newcommand*{\hv}[1]{\label{eqn:#1}\stackrel{\mathclap{(#1)}}{=}}
\newcommand*{\fk}[1]{\item[\eqref{eqn:#1}]}
\begin{document}
We have
\begin{align}
\Delta y
&\hv{1} m(x_{0}+h) - m(x_{0})\\
&\hv{2} \frac{f(x_{0}+h)}{g(x_{0}+h)} - \frac{f(x_{0})}{g(x_{0})}\\
&\hv{3} \frac{f(x_{0}+h) \cdot g(x_{0})}{g(x_{0}+h) \cdot g(x_{0})} - \frac{f(x_{0}) \cdot g(x_{0}+h)}{g(x_{0}) \cdot g(x_{0}+h)}\\
&= \dots
\end{align}
Explanations:
\begin{enumerate}
\fk{1} A
\fk{2} B
\fk{3} C
\end{enumerate}
\end{document}
问题:
- 这种引用对齐表达式中的行的方式看起来很奇怪。有没有更好的方法?
- 我希望标签
(1)
、、(2)
... 只打印在上面=
,而不是直接打印在右边。有办法吗?
广告 2. 我尝试将其放在\notag
每行末尾,但随后出现以下错误:
Package amsmath Error: Multiple \label's: label 'eqn:1' will be lost.
答案1
我最初考虑抑制方程式编号,并使用自定义编号,但事实证明,这\refstepcounter{...}
在数学环境的运行时被忽略了。
设法找到了一种解决方法,它产生了以下输出。我从 10 开始对方程进行编号,以确保数字相关。
关键在于通过变量\makeatletter
在内部分配的标签。基数编号通过数学环境被抑制。\makeatother
\ltx@label
\begin{align*}
\end{align*}
以下是示例输出:
它是用以下代码生成的:
\documentclass[danish]{article}
\usepackage{babel}
\usepackage{mathtools}
\usepackage{enumitem}
\usepackage{hyperref}
%\usepackage[color]{showkeys}
\mathtoolsset{showonlyrefs}
\setcounter{equation}{10}
\makeatletter
\newcommand*{\hv}[1]{%
\refstepcounter{equation}%
\ltx@label{EQ:#1}% Label%
\stackrel{\mathclap{(\theequation)}}{=}%
}
\makeatother
\newcommand*{\fk}[1]{\item[\eqref{EQ:#1}]}
\begin{document}
We have
\begin{align*}
\Delta y &\hv{A} m(x_{0}+h) - m(x_{0})\\
&\hv{B} \frac{f(x_{0}+h)}{g(x_{0}+h)} - \frac{f(x_{0})}{g(x_{0})}\\
&\hv{C} \frac{f(x_{0}+h) \cdot g(x_{0})}{g(x_{0}+h) \cdot g(x_{0})} - \frac{f(x_{0}) \cdot g(x_{0}+h)}{g(x_{0}) \cdot g(x_{0}+h)}\\
&= \dots
\end{align*}
Explanations:
\begin{enumerate}
\fk{A} DESCA
\fk{B} DESCB
\fk{C} DESCC
\end{enumerate}
\end{document}