|测试文档许可证|

sphinxcontrib-katex的Python项目详细描述


用于在html页面中呈现数学的Sphinx extension

扩展使用KaTeX在html页面中呈现数学。它是设计的 作为内置扩展sphinx.ext.mathjax的替代,它使用 MathJax用于渲染。

安装

要将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_inlinekatex_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_inlinekatex_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}

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
hibernate java JPA使用限制api调用sql函数   java使用哈希代码确定对象等价性   java通过蓝牙在安卓应用程序和pc应用程序之间发送敏感数据   mysql查询在java上不提供小数,但在数据库上提供小数   java链接的JAR在IntelliJ中运行良好,但在命令行中却不行   mkstemp的java等价物   java SINGLE_INTERVAL_SELECTION未按预期工作   使用Java流的lambda并行循环?   java如何增加按键上的数字值?   java karaf单个依赖项错误   具有共享主键的java JPA单向@OneToOne关系始终会触发辅助查询,即使fetchType是急切的   java为什么选择。select()总是返回0   java无法确定NullPointerException中哪个变量为null   字符串Java谜题的原因是什么?