math - 获取要在 Sphinx 中显示的多行文档字符串方程。狮身人面像中的潜在错误?
问题描述
Sphinx 官方文档中有以下代码:
.. math::
:nowrap:
\begin{eqnarray}
y & = & ax^2 + bx + c \\
f(x) & = & x^2 + 2xy + y^2
\end{eqnarray}
我尝试了很长时间才能让它工作,直到我将其更改为:
.. math::
:nowrap:
$$
\\begin{eqnarray}
y & = & ax^2 + bx + c \\\\
f(x) & = & x^2 + 2xy + y^2
\\end{eqnarray}
$$
Sphinx 官方文档怎么可能是错误的?
还是这里发生了一些不为人知的事情?甚至Sagemath文档似乎也建议$$
需要使用(请参阅“如果您希望明确不包装 MATH 块 [...]”)或者这是一个错误?
(我使用 Sphinx 2.2.0 并在我的index.rst
文件autofunction
中用于其文档字符串包含上述等式的函数。)
解决方案
Sphinx文档指出,当您将数学标记放入 autodoc 读取的 Python 文档字符串中时,您要么必须将所有反斜杠加倍,要么使用 Python 原始字符串 (r"raw")。发生这种情况是因为 Python 会在Sphinx 有机会解析它之前解释该字符串。
所以,如果你想插入math
一个docstring,下面应该工作:
.. math::
:nowrap:
\\begin{eqnarray}
y & = & ax^2 + bx + c \\\\
f(x) & = & x^2 + 2xy + y^2
\\end{eqnarray}
您可以通过以下方式进一步简化它:
.. math::
y & = ax^2 + bx + c \\\\
f(x) & = x^2 + 2xy + y^2
:nowrap
唯一提示 Sphinx 不应将提供的方程式包装在 LaTeX“拆分”环境中(参见 amsmath 手册的第 3节)。相反,您必须按照本文第一个示例中的说明提供自己的。
推荐阅读
- rust - 如何为 Cargo.toml 中的 [build-dependencies] 生成 rustdoc 文档?
- c# - 没有基本情况的递归?这个函数如何终止?
- jqgrid - 带有分隔符和比例值的 jqgrid 数字格式化程序
- c - 使用自制的 strstr() 函数检查其他字符串中的嵌入字符串,然后用其他字符串替换它(由用户输入)
- python - ImportError:即使安装了 Django,也没有名为 django 的模块
- batch-file - 从变量中删除字符串的一部分,包括带有批处理文件的模式和之后的模式
- c# - Can not implicitly convert type system.collection.genaric.list
to DataModel.resturant.cuisine - asp.net-mvc - 从 Enum 创建的 MVC Razor DropDownList
- alfresco - 如何启动工作流并从关联中传递值
- sql-server - 更改 SQL Server 连接池的 ProgramName