跳转到主要内容

Sphinx扩展,用于在HTML页面中渲染数学公式

项目描述

sphinxcontrib.katex's documentation on Read the Docs sphinxcontrib-katex's supported Python versions sphinxcontrib.katex's MIT license

一个Sphinx扩展,用于在HTML页面中渲染数学公式。

此扩展使用KaTeX在HTML页面中渲染数学公式。它被设计为内置扩展sphinx.ext.mathjax的替代品,后者使用MathJax进行渲染。

安装

要将sphinxcontrib.katex安装到您的Python虚拟环境中,请运行

$ pip install sphinxcontrib-katex

如果您想通过在您的服务器上运行JavaScript而不是在用户的浏览器中运行它来预先渲染数学公式,您必须安装nodejs

用法

在您的Sphinx项目的conf.py中,通过以下方式添加扩展

extensions = ['sphinxcontrib.katex']

要启用服务器端预渲染,请添加以下内容(需要安装nodejs

katex_prerender = True

请参阅配置部分以了解所有可用的设置。

配置

通过您的文档项目 conf.py 中的配置条目可以改变 sphinxcontrib.katex 的行为。以下列出了所有配置条目及其默认值。

katex_css_path = \
    'https://cdn.jsdelivr.net.cn/npm/katex@0.16.10/dist/katex.min.css'
katex_js_path = 'katex.min.js'
katex_autorender_path = 'auto-render.min.js'
katex_inline = [r'\(', r'\)']
katex_display = [r'\[', r'\]']
katex_prerender = False
katex_options = ''

当遇到数学模式时,写入HTML的特定定界符由两个列表 katex_inlinekatex_display 控制。

如果 katex_prerender 设置为 True,则方程式将在服务器上预渲染,浏览器中的页面加载将更快。在您的服务器上,您必须安装 katex 可执行文件,并在 PATH 中指定,如安装部分所述。

字符串变量 katex_options 允许您更改所有可用的官方 KaTeX 渲染选项,例如。

katex_options = r'''{
    displayMode: true,
    macros: {
        "\\RR": "\\mathbb{R}"
    }
}'''

您还可以将 KaTeX 自动渲染选项 添加到 katex_options 中,但请注意,delimiters 条目应包含 katex_inlinekatex_display 的条目。

LaTeX 宏

您可能希望添加一些 LaTeX 数学命令进行渲染。在 KaTeX 中,这通过 LaTeX 宏 (\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 构建器 中可用。如果您还想在基于LaTeX的构建器中使用它们,您必须在您的 conf.py 中将它们作为 latex_macros 设置添加,并使用适当的LaTeX语法指定它们。之后,您可以通过 sphinxcontrib.katex.latex_defs_to_katex_macros 函数将它们包含到 katex_options 中,并将其添加到LaTeX序言中

import sphinxcontrib.katex as katex

latex_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 builder
katex_macros = katex.latex_defs_to_katex_macros(latex_macros)
katex_options = 'macros: {' + katex_macros + '}'

# Add LaTeX macros for LATEX builder
latex_elements = {'preamble': latex_macros}

项目详情


下载文件

下载适合您平台的文件。如果您不确定要选择哪一个,请了解更多关于 安装包 的信息。

源分布

sphinxcontrib_katex-0.9.10.tar.gz (100.2 kB 查看哈希)

上传时间

构建分布

sphinxcontrib_katex-0.9.10-py3-none-any.whl (97.8 kB 查看哈希)

上传于 Python 3

由以下支持