标记的直线方程

标记的直线方程

我搜索了互联网,但找不到解决问题的方法。我想要一个在文本中编号并带有标签的方程式。例如:

The equation a+1=b (2.1) does ...

等式 a+1=b 不应该像往常一样另起一行

The equation
a+1=b (2.2)
does...

答案1

定义如下\inlineequation

\inlineequation[<label name>]{<equation>}
  • 可选择<label name>给出用于参考方程式。
  • \labelequation之后将像环境一样保留先前的引用行为。
  • \refstepcounter在内联方程的开头被调用,因为包hyperref在这里设置了锚点。
  • 编号的方程式可能不应跨行拆分。这可以通过开头的惩罚设置来防止,而不会失去粘连的可拉伸性。否则,\hbox\mbox拉伸性将会丢失。
  • 方程编号由 设定\@eqnnum,它负责处理环境中方程编号的格式equation。它负责添加括号和字体设置。

示例文件:

\documentclass{article}

\makeatletter
\newcommand*{\inlineequation}[2][]{%
  \begingroup
    % Put \refstepcounter at the beginning, because
    % package `hyperref' sets the anchor here.
    \refstepcounter{equation}%
    \ifx\\#1\\%
    \else
      \label{#1}%
    \fi
    % prevent line breaks inside equation
    \relpenalty=10000 %
    \binoppenalty=10000 %
    \ensuremath{%
      % \displaystyle % larger fractions, ...
      #2%
    }%
    ~\@eqnnum
  \endgroup
}
\makeatother

\usepackage{hyperref}

\begin{document}
The equation        
\inlineequation[eq:inline]{a+1=b}
does \dots
\end{document}

结果

答案2

我不确定这是不是个好主意(例如,想象一个新读者搜索公式 2.1),但以下内容似乎可以满足您的要求;请注意,我已经习惯refstepcounter增加equation计数器。

\documentclass{article}
\usepackage{amsmath}

\begin{document}
The equation $a+1=b~\refstepcounter{equation}(\theequation)\label{myeq}$

Here is a reference: \eqref{myeq}

\end{document}

相关内容