Sphinx扩展,用于处理LaTeX数学
项目描述
texext 包含了一些用于处理LaTeX数学的 Sphinx 扩展。
math_dollar
math_dollar 将 ReST 中的美元符号之间的数学表达式替换为等价的内联数学表达式。
例如
Here is some math: $a = 2$
将被替换为
Here is some math: :math:`a = 2`
该扩展会尽量不替换不是数学表达式的美元符号,但请仔细检查您的输出,如果有问题,请通过 texext问题跟踪器 提交问题。
要启用math_dollar,确保 texext 包已添加到您的Python路径中,并在Sphinx conf.py 中的扩展列表中添加 texext.math_dollar。如果您希望math_dollar处理文档字符串,应将 sphinx.ext.autodoc 添加到扩展列表中,高于 math_dollar。
mathcode指令
sympy(https://sympy.cn)的用户可能在Sympy中动态生成LaTeX表达式,然后在生成的网页中渲染它们。您可以使用mathcode指令来实现这一功能。
.. mathcode:: import sympy a, b = sympy.symbols('a, b') a * 10 + 2 * b
该指令在最终表达式的返回结果上运行sympy.latex(),并将其嵌入到.. math::指令中,从而产生与sphinx等价的结果。
.. math:: 10 a + 2 b
默认情况下,上下文(命名空间)被保留,因此您可以在后续指令中使用上下文,例如。
.. mathcode:: a * 5 + 3 * b
如果mathcode块中的最后一个表达式不是表达式,上下文将更新,但扩展不会生成任何数学指令到输出。这允许您有填充计算而不渲染到页面的块。例如,这不会生成任何输出。
.. mathcode:: expr = a * 4
您可以在后续指令中使用生成的上下文。
.. mathcode:: expr
要重置上下文(命名空间),请使用newcontext选项。
.. mathcode:: :newcontext: import sympy # again
如果您希望mathcode与matplotlib plot_directive共享命名空间,请在您的conf.py中设置以下内容。
# Config of mathcode directive mathcode_use_plot_ns = True
如果您使用Nb2plots进行绘图,并且希望Mathcode与Nb2plots绘图指令共享命名空间,您将需要直接指定Nb2plots绘图上下文。
# Config of mathcode directive mathcode_use_plot_ns = True mathcode_plot_context = 'nb2plots.nbplots.plot_context'
更一般地,如果您想使用自定义版本的plot_directive,您需要提供plot指令的plot上下文字典的名称,作为一个字符串。例如,如果您有一个可导入的自定义plot指令模块,作为import my_path.plot_directive,其上下文在my_path.plot_directive.plot_context中,那么您的conf.py应该有如下这些行:
# Config of mathcode directive mathcode_plot_context = "my_path.plot_directive.plot_context"
为了使sphinx能够在运行之间序列化配置,上下文是一个字符串而不是属性本身。这允许sphinx避免在调用sphinx-build之间没有改变内容的页面重建。
要启用mathcode指令,请确保texext包在您的Python路径上,并在Sphinx的conf.py中将textext.mathcode添加到扩展列表中。
代码
请参阅https://github.com/matthew-brett/texext
在源分布的文件LICENSE中,以BSD双条款许可证发布。
travis-ci自动在Python版本2.7和3.6到3.8下测试代码。
支持
请在texext问题跟踪器上提出问题。
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。