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

How to configure Sphinx with MathJax to use dollar signs for math delimiter

如何将 Sphinx 配置为使用美元符号作为 MathJax 扩展的数学定界符?

我试过添加

mathjax_config = {
    'tex2jax': {
      'inlineMath': [ ['$','$']],
      'displayMath': [ ['$$','$$']],
    },
}

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

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

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

要使用它,请安装扩展程序

pip install sphinx-math-dollar

并将其添加到您的 conf.py

extensions = ['sphinx_math_dollar', 'sphinx.ext.mathjax']

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