4

如何在重组文本中制作方程式,后跟方程式编号:

p = f(x)                (1)

.. math::
   p = f(x)

只会导致:

p = f(x)
4

2 回答 2

10

几年后看这个,似乎这个数字仍然没有自动放在方程的右边。因此,我想补充一下已接受的答案。

首先,在 rst 文件中为方程添加标签:

.. math::
   :label: pfx

   p = f(x)

这将生成一个包含数字和等式链接<span>的类。eqno要使其显示为您期望的方程式编号,您需要添加一个样式来覆盖该类的默认行为。

我通常通过添加custom.css_static/css我的文档根目录下的文件夹来做到这一点:

.math {
    text-align: left;
}
.eqno {
    float: right;
}

该类math标记<div>包含整个方程。如果没有这种text-align: left;风格,你所有的方程都会居中,所以把它们编号在左边是完全合理的。

现在您需要将 CSS 文件注册到conf.py. 我添加了以下基本钩子:

def setup(app):
    app.add_stylesheet('css/custom.css')

相对路径从_static文件夹中解析。您可以添加 globbing 以一次获取文件夹中的所有文件,但这应该足够了。

@EngineeredBrain 的评论在上一行报告了一个数字的原因是他们的方程太长并且不适合同一行。我确信有一种方法可以让它们无论如何都适合,但我什至不会尝试在这里讨论。

据我所知,这仅适用于 sphinx(而非 rST),并且仅适用于 HTML 输出。有一天我会尝试使用 latexpdf 并更新。

于 2018-09-26T03:08:30.770 回答
5
.. math:: p=f(x)
  :label: eq:pfx
于 2013-10-07T11:25:32.330 回答