除了方程编号外,还添加方程名称(这样 \eqref 仅插入数字)

除了方程编号外,还添加方程名称(这样 \eqref 仅插入数字)

我试图在方程编号之外添加方程名称,但此外,还试图\eqref只插入数字。

受到在方程编号下方添加方程名称,我尝试了以下解决方案:

\documentclass{article}
\usepackage{amsmath}
\newcommand\mylabel[2]{\label{#1} \\[-\baselineskip] \tag*{#2\ \hphantom{(\ref{#1})}}}

\begin{document}

\begin{align}
f(x) = a \mylabel{eq:a}{Constant} \\
h(x) = ax^2+bx+c \mylabel{eq:b}{Quadratic}
\end{align}

Equations \eqref{eq:a} and \eqref{eq:b} look OK\dots 

\begin{align}
j(x) = \varinjlim_{C_j} \mylabel{eq:c}{Way too low!}
\end{align}

\dots but the method fails in style for Equation \eqref{eq:c}.

\end{document}

在此处输入图片描述


如您所见,我使用的技巧是将方程名称写在新行中,然后将其提升-\baselineskip。对于 (1) 或 (2) 等简单方程,我得到了我想要的结果。但事实上,这是粗制滥造的工作,一旦方程变得稍微复杂一些,例如 (3),它就会失败。

我不知道是否可以使用另一种长度来代替以便-\baselineskip始终获得正确的升力,或者是否有更优雅(并且不太复杂)的方法来实现我想要的。

答案1

根据以下答案如何在等式前面放置文本标签?,我只是将标签从左侧移到了右侧。在这个 MWE 中,我使用flalign环境来完成任务。在链接的答案中,还有一种使用堆栈的方法,如果flalign它不适合你的需要。

\documentclass{article}
\usepackage{amsmath}
\begin{document}
\noindent text
\begin{flalign}
\phantom{\text{Constant}}&&f(x) = a&&\text{Constant}\label{eq:a}\\
\phantom{\text{Quadratic}}&&h(x) = ax^2+bx+c&&\text{Quadratic}\label{eq:b}
\end{flalign}
Equations \eqref{eq:a} and \eqref{eq:b} look OK\dots 
\begin{flalign}
\phantom{\text{Just right!}}&&j(x) = \varinjlim_{C_j}
&&\text{Just right!}\label{eq:c}
\end{flalign}
\dots and the method no longer fails in style for Equation \eqref{eq:c}.
\end{document}

在此处输入图片描述

这个过程可以通过宏来简化

\newcommand\nameeq[2]{\phantom{\text{#2}}&&#1&&\text{#2}}

以及以下用法:

\begin{flalign}
\nameeq{f(x) = a}{Constant}\label{eq:a}\\
\nameeq{h(x) = ax^2+bx+c}{Quadratic}\label{eq:b}
\end{flalign}

答案2

\flalign您可以使用环境和 命令以更简单的方式执行此操作\llap。以下代码显示了两种执行方式 — 相对于剩余空白居中或相对于线宽居中:

    \documentclass{article}
    \usepackage{amsmath}

    \begin{document}
    Centring without taking the names into account:
    \begin{flalign}
     &  & f(x)  & = a &  & \text{\llap{Constant}}\label{eq:a} \\
     &  & h(x)  & = ax^2+bx+c  &  &  \text{\llap{Quadratic}} \label{eq:b}
    \end{flalign}

    Equations \eqref{eq:a} and \eqref{eq:b} look OK\dots

    \begin{flalign}
     &  & j(x)  & = \varinjlim_{C_j} &  & \text{\llap{Way too low!}} \label{eq:c}
    \end{flalign}

    \dots and the method doesn’t fail for Equation \eqref{eq:c}.\bigskip

    Other way to centre the main equations --- with respect to the remaining white space:

    \begin{flalign}
     &  & f(x)  & = a &  & \text{Constant}\label{eq:a’} \\
     &  & h(x)  & = ax^2+bx+c  &  &  \text{Quadratic}\label{eq:b’}
    \end{flalign}

    Equations \eqref{eq:a’} and \eqref{eq:b’} look OK\dots

    \begin{flalign}
     &  & j(x)  & = \varinjlim_{C_j} &  & \text{Way too low!} \label{eq:c’}
    \end{flalign}

    \end{document} 

在此处输入图片描述

相关内容