- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在尝试在 Sphinx(版本 1.1.2-1)中的多行数学模式中做三件非常基本的事情。
\big
、\biggl
等定界符组成大括号和圆括号;注意以下两点。 (1) 我在 Sphinx 标记文档的 Python 代码中使用原始字符串,因此转义字符不需要额外的反斜杠,并且 (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 文件会为我计算账面净值数据。所以在下面,当你看到有关 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 构建文档的输出。
如果您右键单击并选择“查看图像”,您可以看到更好的版本。
最佳答案
您必须编辑 sphinx-quickstart
创建的标准配置文件,否则 sphinx 会在数学 block 处呕吐。在文件 conf.py
中,我更改了
extensions = []
到
extensions = ['sphinx.ext.pngmath']
在那之后,下面的第一个文件或多或少起作用了;
.. foo documentation master file, created by
sphinx-quickstart on Thu Oct 25 11:04:31 2012.
You can adapt this file completely to your liking, but it should at least
contain the root `toctree` directive.
Welcome to foo's documentation!
===============================
Contents:
.. toctree::
:maxdepth: 2
This is the first chapter
=========================
Instead, I am doing multi-line stuff, often like eqnarray in LaTeX:
.. math::
DividendYield &=& \frac{DVT(t)}{CurrentMarketCap} \\
Avg_Assets &=& \biggl( A/B \biggr) \textrm { when B is not zero...}
它为数学片段生成了以下 LaTeX 代码:
\chapter{This is the first chapter}
\label{index:welcome-to-foo-s-documentation}\label{index:this-is-the-first-chapter}
Instead, I am doing multi-line stuff, often like eqnarray in LaTeX:
\begin{gather}
\begin{split}DividendYield &=& \frac{DVT(t)}{CurrentMarketCap} \\
Avg_Assets &=& \biggl( A/B \biggr) \textrm { when B is not zero...}\end{split}\notag\\\begin{split}\end{split}\notag
\end{gather}
我觉得选择组合使用 split 和 gather 有点奇怪,而且显然不能很好地处理您为 eqnarray 编写的代码,但这在 Sphinx 中是硬编码的。
运行 pdflatex 确实在 \end{gather}
处停止,出现错误 Extra alignment tab has been changed to\cr.
但我能够继续通过进入不间断模式。这给了我以下结果:
虽然对齐仍有问题(因为 split
和 eqnarray
环境之间的差异),但 textrm 和 biggl 似乎工作正常。 (请注意,您仍然需要在 Average_Assets
中转义下划线,但这对类(class)来说是正常的,AFAICT)。
您可能对生成的 LaTeX 代码进行后处理,例如通过替换 \begin{gather}\begin{split}
和 \end{split}\notag\\\begin{split}\end{split}\notag\end{gather}
根据您选择的数学环境。
更新:
更新的屏幕截图似乎来自网页,而不是 LaTeX 文档!所以在我看来,产生错误的是转换 LaTeX 数学符号以便浏览器可以显示的处理程序。这可能是 MathJax
或 jsMath
。通过查看代码,pngmath
会产生其他错误消息。根据this page ,您的代码片段应该在 mathjax 中工作。来自jsMath symbols page ,看起来 jsmath 不支持 \Biggl
。所以我最好的猜测是 SPhinx 配置为使用 jsMath。看一眼生成的网页的源代码,您就会知道用于呈现数学的是什么。如果我的猜测是正确的,将配置切换为使用 mathjax 并稍微调整您的等式可能会解决问题。
Update2:我可以肯定地确认它可以与 MathJax 一起正常工作(见下文)。不过,我没有安装 jsMath。
关于python - Sphinx LaTeX 标记限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13017397/
在 Sphinx 2.0.6 中尝试启用通配符 (*) 的搜索时出现以下错误 index products: syntax error, unexpected $undefined near '*'
如果我更新 sphinx.conf 文件中的资源,我可以使用 --rotate 重新索引,一切正常。如果我更新 sphinx.conf 中的索引或添加新索引 --rotate 无效,我必须重新启动 s
问题 我一直在用(Python) Sphinx doc ,以及 CommonMark解析器,编写包含用 reStructuredText 和 Markdown 编写的文件的 Sphinx 文档。到目前
我正在使用漂亮的 sphinx-bootstrap-theme 0.3.4 并尝试将它应用到 Sphinx Python 文档生成器 1.2 版之上。 当我通过 make html 构建文档时,我没有
关于此主题,有几篇“未答复”的帖子与无法找到“sphinx-build”有关: sphinx-build -h command not found in Mac OS Sphinx 是在 OSX 上使
我正在使用 Sphinx 搜索引擎,我遇到一个问题,即一些文件没有显示在搜索结果中,但绝对应该显示。我已经检查以确保没有信息。缺少会阻止这些文件出现的信息。 有什么方法可以直接查询索引,看看有没有这些
如何使用 Sphinx 从索引中获取所有记录?就像 SELECT * FROM index 一样?我知道我可以做这样的事情来获取与特定关键字匹配的所有记录:/usr/local/sphinx/bin/
我对 Sphinx 很陌生,在服务器上记录我的项目。现在一位同事看到了我一直在做的事情,她想做同样的事情——在同一台服务器上记录她的项目。 这些项目不相关(它们不属于单个 TOCtree),我不知道如
我有一个很大的索引定义,索引需要很长时间。我怀疑主要问题是由生成的许多 LEFT OUTER JOIN 引起的。 我看到了 this question ,但找不到有关使用 source: :query
写作的python工具,awscli-bastion , 具有以下由 cookiecutter 构建的目录结构. . ├── awscli_bastion │ ├── __init__.py │
Sphinx 文档生成器提供 only markup .例如,以下将仅包含外部文件“仅”如果其 html 生成器: .. only:: html .. include:: a.rst 但是我将如
我在我的Rails应用程序中实现了 sphinx 搜索。 我想模糊搜索。它应该搜索拼写错误,例如,如果输入搜索查询charact * a * ristics,则应该搜索charact * e * ri
Sphinx-autodoc 将字典、列表和元组扁平化 - 使长的几乎不可读。也并不总是需要 pretty-print 格式,因为一些嵌套的容器比分列更好地保持扁平化。有没有办法显示源代码中输入的可迭
我正在使用 Sphinx 为我的项目编写文档,并且发现下面给出的两个相似的 reStructuredText 段的呈现方式有所不同。 示例 1 Some text: * Item 0 * Item
考虑ReStructuredText中的以下列表: Broken list example ------------------- #. First do spam #. Then do ``eggs
我正在使用 Sphinx Doc 为我的一个项目创建文档,并且我在整个文档中多次使用了一些词,例如 - IP 地址、端口号和许多其他可能会随时间变化的内容。如果由于某种原因,其中一个将被更改,我只想在
我在 .rst 文件中有以下文本: Some text. * Heading | The first topic. | Another topic which is very verbose
我有很多 Sphinx 页面,它们都有相同的链接。像那些: .. _CC-BY: https://creativecommons.org/licenses/by/3.0/ .. _MIT: http:
我想链接到我的狮身人面像文档中的一些URL: blah 我在文档中发现了类似的内容:http://sphinx-doc.org/ext/extlinks.html-而是按照约定用链接替换自定义语法。
使用 sphinx 的自动模块 (https://www.sphinx-doc.org/en/master/usage/extensions/autodoc.html) 时, 我只是写在一个 .rst
我是一名优秀的程序员,十分优秀!