如何使用 MathJax 配置 Sphinx 以使用美元符号作为数学分隔符

asm*_*rer 3 latex mathjax python-sphinx

如何配置 Sphinx 以使用美元符号作为 MathJax 扩展的数学分隔符?

我尝试添加

mathjax_config = {
    'tex2jax': {
      'inlineMath': [ ['$','$']],
      'displayMath': [ ['$$','$$']],
    },
}
Run Code Online (Sandbox Code Playgroud)

to conf.py,但这有两个问题:

  1. 数学需要两个反斜杠。例如,$\\sin(x)$。Sphinx 似乎去掉了单个反斜杠。
  2. 如果我不在..math页面上的某处包含普通指令,它就不会加载 MathJax Javascript。我想专门使用$$$分隔数学。

asm*_*rer 5

我写了一个 Sphinx 扩展,让你这样做https://www.sympy.org/sphinx-math-dollar/

要使用它,请安装扩展

pip install sphinx-math-dollar
Run Code Online (Sandbox Code Playgroud)

并将其添加到您的 conf.py

extensions = ['sphinx_math_dollar', 'sphinx.ext.mathjax']
Run Code Online (Sandbox Code Playgroud)

作为技术说明,在不使用此扩展程序的情况下尝试正确执行此操作将非常困难。您必须在 Sphinx 处理中的正确位置进行替换。如果您在处理过程中做得太晚(例如,通过设置 JavaScript 配置),它将无法工作,因为此时 Sphinx 已经从数学中去除了所有反斜杠。如果你做得太快(例如,通过对输入文本进行正则表达式替换),它也会失败,因为你最终会在你不想要的东西中替换数学,例如,在 doctests 或代码中。