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
$$
效果
使用 {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>
效果