|测试文档许可证|
sphinxcontrib-katex的Python项目详细描述
用于在html页面中呈现数学的Sphinx extension。
扩展使用KaTeX在html页面中呈现数学。它是设计的 作为内置扩展sphinx.ext.mathjax的替代,它使用 MathJax用于渲染。
- 文档:https://sphinxcontrib-katex.readthedocs.io/
- 下载:https://pypi.org/project/sphinxcontrib-katex/#files
- 开发:https://github.com/hagenw/sphinxcontrib-katex/
安装
要将sphinxcontrib.katex安装到python虚拟环境中,请运行:
$ pip install sphinxcontrib-katex
如果您想通过在服务器上运行javascript来预先呈现数学 要在用户的浏览器中运行它,必须安装katexon 您的服务器并将其添加到您的路径:
$ npm install katex $ PATH="${PATH}:$(pwd)/node_modules/.bin"
用法
在sphinx项目的conf.py中,添加扩展名:
extensions=['sphinxcontrib.katex']
对于启用服务器端预渲染附加组件:
katex_prerender=True
有关所有可用设置,请参阅配置部分。
配置
可以通过配置更改sphinxcontrib.katex的行为 文档项目的conf.py中的条目。在下面 列出所有配置条目并显示其默认值。
katex_css_path= \ 'https://cdn.jsdelivr.net/npm/katex@0.10.2/dist/katex.min.css'katex_js_path= \ 'https://cdn.jsdelivr.net/npm/katex@0.10.2/dist/katex.min.js'katex_autorender_path= \ 'https://cdn.jsdelivr.net/npm/katex@0.10.2/contrib/auto-render.min.js'katex_inline=[r'\(',r'\)']katex_display=[r'\[',r'\]']katex_prerender=Falsekatex_options=''
遇到数学模式时写入HTML的特定分隔符是 由两个列表katex_inline和katex_display控制。
如果katex_prerender设置为True,则将在 服务器和在浏览器中加载页面将更快。 在您的服务器上,您必须安装一个katex可执行文件并在您的路径中 如安装部分所述。
字符串变量katex_options允许您更改所有可用的 官方KaTeX rendering options,例如
katex_options=r'''{ displayMode: true, macros: { "\\RR": "\\mathbb{R}" } }'''
您也可以将KaTeX auto-rendering options添加到katex_options,但是 注意delimiters条目应该包含 katex_inline和katex_display。
乳胶宏
很可能您想为 致使。在katex中,这是由乳胶宏(\def)支持的。 您可以使用katex_options配置设置来添加这些设置:
katex_options=r'''macros: { "\\i": "\\mathrm{i}", "\\e": "\\mathrm{e}^{#1}", "\\vec": "\\mathbf{#1}", "\\x": "\\vec{x}", "\\d": "\\operatorname{d}\\!{}", "\\dirac": "\\operatorname{\\delta}\\left(#1\\right)", "\\scalarprod": "\\left\\langle#1,#2\\right\\rangle", }'''
此选项的缺点是这些宏只能在 基于html的Sphinx builders。如果你想在乳胶基中使用它们 同时,还必须将它们作为latex_macros设置添加到 conf.py并使用正确的乳胶语法指定它们。以后你可以 通过^{tt20}包含它们$ 函数到katex_options并将它们添加到乳胶前导:
importsphinxcontrib.katexaskatexlatex_macros=r""" \def \i {\mathrm{i}} \def \e #1{\mathrm{e}^{#1}} \def \vec #1{\mathbf{#1}} \def \x {\vec{x}} \def \d {\operatorname{d}\!} \def \dirac #1{\operatorname{\delta}\left(#1\right)} \def \scalarprod #1#2{\left\langle#1,#2\right\rangle} """# Translate LaTeX macros to KaTeX and add to options for HTML builderkatex_macros=katex.latex_defs_to_katex_macros(latex_macros)katex_options='macros: {'+katex_macros+'}'# Add LaTeX macros for LATEX builderlatex_elements={'preamble':latex_macros}