重新定义枚举列表中的标签

重新定义枚举列表中的标签

首先:几天前我发布了这个问题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. 我希望标签(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}

相关内容