我正在尝试在 Sphinx(版本 1.1.2-1)的多线数学模式中做三件非常基本的事情。
- 即使在数学模式下,也将下划线作为我的变量名的一部分;
- 使用
\big
,\biggl
等分隔符制作大括号和圆括号; - 并包括常规文本作为方程式的一部分。
注意以下两点。(1) 我在我的 Python 代码中为 Sphinx 标记文档使用了原始字符串,因此转义字符不需要额外的反斜杠,并且 (2) 我没有使用内联数学模式,它在 Sphinx 中是这样分隔的:
:math:`Some math stuff goes here` regular text could go here...
相反,我正在做多行的东西,通常就像eqnarray
在 LaTeX 中一样:
.. math::
DividendYield &=& \frac{DVT(t)}{CurrentMarketCap} \\
Avg_Assets &=& \biggl( A/B \biggr) \textrm { when B is not zero...}
目前,我收到 Sphinx 错误(并且生成的文档页面看起来像乱码),说的是:
Unknown LaTeX command: textrm
同样的情况发生在\biggl
. 对于下划线,它总是将其解释为好像我在表示下标,但如果我使用\textunderscore
或其他技巧,那么它会引发与上述相同类型的错误。
数学模式中的下划线、textrm
命令和大分隔符是我曾经使用过的每个原生 TeX 包的非常基本的部分。那么为什么它们无法通过 Sphinx 访问呢?
更新
我正在处理的一个特定 Python 文件为我计算账面净值数据。所以下面,当你看到关于 BookEquity 的东西时,这就是参考。除非通过版本控制系统,否则我无法运行我们的构建文档过程,因此如果我只是修改现有文件,则最容易出现可重现的错误。
但是,我所做的只是在我的代码中添加以下类函数,并带有一个简单的文档字符串。
def foo(self):
r"""
Sample docstring
.. math::
Ax &=& b \\
Cx &=& \biggl(\frac{x/y}\biggr) \textrm{ if y is not zero.}
"""
pass
然后下图是使用 Sphinx 1.1.2-1 构建文档的输出。
如果您右键单击并选择“查看图像”,您可以看到更好的版本。