• Github 中文镜像
Sign inSign up
Watch966
Star102.4k
Fork61.8k
Tag: beex
Switch branches/tags
Branches
Tags
K / 为你的主题添加 KaTeX 支持(数学公式).md
移动浏览 Clone
加载中...
到移动设备上浏览
105 lines 5.36 KB
First commit on 9 Jul 2020

    介绍

    LaTeX 是一个十分完整的排版系统,主要用于学术论文,也很庞大,KaTeX 则是将 LaTeX 中与数学公式有关的语法抽取出来,使用 JavaScript 实现解析和渲染,由可汗学院出品。目前 KaTeX 已经支持了大部分数学符号的使用,开发也持续进行中,详情请查阅官方文档:katex.org

    快速开始

    为主题支持 KaTeX 非常容易,只需在模板文件中加载:

    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/katex.min.css">
    <script defer src="https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/katex.min.js"></script>
    <script defer src="https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/contrib/auto-render.min.js" onload="renderMathInElement(document.body);"></script>
    

    最后一行的意思是页面加载完开始渲染公式,否则你需要手动调用渲染函数,个性化配置请查阅官方文档。

    块级公式渲染

    • 用法

      • 小提示

        多行公式请参考下面“换行和转义”一节的推荐用法。

      使用 $$ 包裹公式,渲染出的公式会单独一行并居中,如下:

      块级公式开始 $$ x = \frac{-b \pm \sqrt{b^2 - 4ac}}{2a} $$ 块级公式结束。
      
    • 效果

      块级公式开始 $$ x = \frac{-b \pm \sqrt{b^2 - 4ac}}{2a} $$ 块级公式结束。

    行内公式渲染

    • 用法

      KaTeX 默认使用 \\(\\) 包裹行内公式:

      行内公式开始 \\( E = MC^2 \\) 行内公式结束。
      
    • 效果

      行内公式开始 \( E = MC^2 \) 行内公式结束。

    换行和转义

    • 用法

      • 推荐

        KaTeX 通过 \\ 换行。

        KaTeX 和 Markdown 有冲突,比如 Markdown 可能会转义 * - _ ~ \ 这些字符。这时你可以用一个 HTML 标签包裹 Markdown(中间不能有空行),就不会转义这些字符,也就不需要使用 \\\\ \* \_ 这种形式。

        <div>
        $$
        E = MC^2 \\
        3! = 3*2*1
        $$
        </div>
        
      • 不推荐

        这种用法不方便,见上一条说明。

        $$
        E = MC^2 \\\\
        3! = 3\*2\*1
        $$
        
    • 效果

      $$ E = MC^2 \\ 3! = 3*2*1 $$

    对齐

    使用 {aligned}& 标记要对齐的位置,否则每行的公式自身都是居中的。为了展示效果下面特意没有对齐公式:

    • 用法

      <div>
      $$
      \bigg\lbrace\begin{aligned}
      & x = 16\sin^3t \\
      y = & 13\cos{t} - 5\cos{2t} - 2\cos{3t} - \cos{4t}
      \end{aligned}
      $$
      </div>
      
    • 效果

      $$ \bigg\lbrace\begin{aligned} & x = 16\sin^3t \\ y = & 13\cos{t} - 5\cos{2t} - 2\cos{3t} - \cos{4t} \end{aligned} $$