我试图在方程编号之外添加方程名称,但此外,还试图\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}}&&&\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}