如何使用 MathJax 配置 Sphinx 以使用美元符号作为数学定界符
How to configure Sphinx with MathJax to use dollar signs for math delimiter
如何将 Sphinx 配置为使用美元符号作为 MathJax 扩展的数学定界符?
我试过添加
mathjax_config = {
'tex2jax': {
'inlineMath': [ ['$','$']],
'displayMath': [ ['$$','$$']],
},
}
到 conf.py
,但这有两个问题:
- 数学需要两个反斜杠。例如,
$\sin(x)$
。似乎 Sphinx 去掉了单个反斜杠。
- 如果我不在页面某处包含正常的
..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 或代码中。
如何将 Sphinx 配置为使用美元符号作为 MathJax 扩展的数学定界符?
我试过添加
mathjax_config = {
'tex2jax': {
'inlineMath': [ ['$','$']],
'displayMath': [ ['$$','$$']],
},
}
到 conf.py
,但这有两个问题:
- 数学需要两个反斜杠。例如,
$\sin(x)$
。似乎 Sphinx 去掉了单个反斜杠。 - 如果我不在页面某处包含正常的
..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 或代码中。