我搜索了互联网,但找不到解决问题的方法。我想要一个在文本中编号并带有标签的方程式。例如:
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>
给出用于参考方程式。 \label
equation
之后将像环境一样保留先前的引用行为。\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}