我正在尝试在Sphinx(版本1.1.2-1)的多行数学模式中完成三个非常基本的任务。
- 即使在数学模式下,将下划线作为变量名的一部分编写;
- 使用
\big
、\biggl
等定界符来制作大括号和括号; - 并将常规文本包含在方程中。
请注意以下两点。 (1) 我在Python代码中使用原始字符串进行Sphinx标记文档,因此不需要额外的反斜杠来转义字符,(2) 我没有进行内联数学模式,它在Sphinx中的定界符如下:
:math:`Some math stuff goes here` regular text could go here...
相反,我正在进行多行操作,通常类似于LaTeX中的eqnarray
:
.. 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文件,该文件为我计算Book Equity数据。因此,在下面看到关于BookEquity的内容时,这就是参考资料。我无法通过版本控制系统以外的方式运行我们的build-docs流程,因此,如果我只是修改现有文件,使其出现可重复的错误,那么最简单的方法就是添加以下类函数到我的代码中,并附带一个简单的docstring。
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生成文档的输出结果。
如果您右键点击并选择“查看图像”,您可以看到更好的版本。
\_
,您可以尝试使用\text{}
代替\textrm
(需要amsmath
包)。 - Peter Grillmathbase.py
)的最后更改是在1.1.2版本发布之前。因此,在1.1.2和1.1.3之间,该行为没有发生变化。 - Roland Smith