我使用Sphinx(v1.4.9,在Windows 7上使用Python 3.5.1,64位)编写启用了MathJax的文档集。我想定义自定义LaTeX命令来清理我的源代码,因此我通过添加_templates\layout.html
实现了this approach:
{% extends "!layout.html" %}
{% set script_files = script_files + ["_static/mjconf.js"] %}
并在_static\mjconf.js
中定义自定义命令:
MathJax.Hub.Config({
TeX: {
Macros: {
dsetarr: ['{\\small \\textsf{#1 Array } \\mathsf{(#2)} }', 2],
dsettype: ['{\\small \\textsf{#1}}', 1],
mtt: ['{\\texttt{#1}}' ,1],
sgn: ['{\\mathrm{sgn}#1}', 1]
}
}
});
这一切都很有效。
然而 ,每当我编辑mjconf.js
添加新命令或修改现有命令时,Sphinx都不会识别配置已更改因此,简单的make html
不会像编辑conf.py
后那样重建文档。我必须在make clean
之前make html
才能看到更改对这些自定义MathJax命令的影响。
如何通过重建整个文档集来配置Sphinx对已编辑的mjconf.js
作出反应,就像编辑conf.py
一样?
答案 0 :(得分:2)
有make html -a
,但这不会反映文档中交叉引用的更新。但是,如果您没有交叉引用更新,这将是最快的选择。
如果您有必须更新的交叉引用,还有make html -E
。
最后有make clean html
,删除(清理)构建目录,如果你的makefile有,那么再次构建HTML。
答案 1 :(得分:0)
为了启用make html -E
作为recommended by Steve Piercy的调用,我从此更改了make.bat
:
set BUILDDIR=build
set ALLSPHINXOPTS=-d %BUILDDIR%/doctrees %SPHINXOPTS% source
set I18NSPHINXOPTS=%SPHINXOPTS% source
if NOT "%PAPER%" == "" (
set ALLSPHINXOPTS=-D latex_paper_size=%PAPER% %ALLSPHINXOPTS%
set I18NSPHINXOPTS=-D latex_paper_size=%PAPER% %I18NSPHINXOPTS%
)
到此:
set BUILDDIR=build
set ALLSPHINXOPTS=-d %BUILDDIR%/doctrees %SPHINXOPTS% source %2
set I18NSPHINXOPTS=%SPHINXOPTS% source
if NOT "%PAPER%" == "" (
set ALLSPHINXOPTS=-D latex_paper_size=%PAPER% %ALLSPHINXOPTS%
set I18NSPHINXOPTS=-D latex_paper_size=%PAPER% %I18NSPHINXOPTS%
)
唯一的变化是将%2
追加到初始化%ALLSPHINXOPTS%
的行。