数学公式

数学公式

LaTeX 数学表达式默认使用 KaTeX\KaTeX 渲染。直接在 Markdown 内容中使用即可,无需手动配置。

使用方法

LaTeX 既可用于行内表达式,也可用于大段文本。

行内公式

要在文本行内插入表达式,用 \(\) 包裹。

page.md
这个 \(\sigma(z) = \frac{1}{1 + e^{-z}}\) 是行内表达式。

这个 σ(z)=11+ez \sigma(z) = \frac{1}{1 + e^{-z}} 是行内表达式。

独立公式

对于需要单独成段的表达式,使用 $$ 包裹。

page.md
$$F(\omega) = \int_{-\infty}^{\infty} f(t)\, e^{-j \omega t} \, dt$$

将渲染为:

F(ω)=f(t)ejωtdtF(\omega) = \int_{-\infty}^{\infty} f(t)\, e^{-j \omega t} \, dt

还可以使用 LaTeX 环境如 aligned 处理多行公式。

page.md
$$
\begin{aligned}
  \nabla \cdot \mathbf{E} &= \frac{\rho}{\varepsilon_0} \\
  \nabla \cdot \mathbf{B} &= 0 \\
  \nabla \times \mathbf{E} &= -\frac{\partial \mathbf{B}}{\partial t} \\
  \nabla \times \mathbf{B} &= \mu_0 \left( \mathbf{J} + \varepsilon_0 \frac{\partial \mathbf{E}}{\partial t} \right)
\end{aligned}
$$

将渲染为:

E=ρε0B=0×E=Bt×B=μ0(J+ε0Et) \begin{aligned} \nabla \cdot \mathbf{E} &= \frac{\rho}{\varepsilon_0} \\ \nabla \cdot \mathbf{B} &= 0 \\ \nabla \times \mathbf{E} &= -\frac{\partial \mathbf{B}}{\partial t} \\ \nabla \times \mathbf{B} &= \mu_0 \left( \mathbf{J} + \varepsilon_0 \frac{\partial \mathbf{E}}{\partial t} \right) \end{aligned}

支持的函数列表见 KaTeX 支持函数

化学表达式

默认启用了 mhchem 扩展,可轻松渲染化学方程式和分子式。

行内示例:HX2O\ce{H2O} 是水。

独立段落:

page.md
$$\ce{Hg^2+ ->[I-] HgI2 ->[I-] [Hg^{II}I4]^2-}$$

将渲染为:

HgX2+IXHgIX2IX[HgXIIIX4]X2\ce{Hg^2+ ->[I-] HgI2 ->[I-] [Hg^{II}I4]^2-}

配置

Important

请在 Hugo 配置文件中启用并配置 passthrough 扩展,以便 Hugo 能识别 Markdown 中的 LaTeX 数学表达式。

hugo.yaml
markup:
  goldmark:
    extensions:
      passthrough:
        delimiters:
          block: [['\[', '\]'], ["$$", "$$"]]
          inline: [['\(', '\)']]
        enable: true

数学引擎

构建过程中默认使用 KaTeX 渲染 LaTeX 数学表达式,由 Hugo 支持。

默认引擎是 KaTeX,但也可切换至 MathJax 以使用其特有功能。

KaTeX

默认设置无需配置。Hugo 会从 CDN 获取 KaTeX CSS。如需指定 KaTeX 版本或使用本地资源,可在 hugo.yaml 中配置。

覆盖 CDN 基础 URL
hugo.yaml
params:
  math:
    engine: katex
    katex:
      base: "https://cdn.jsdelivr.net/npm/katex@0.16.22/dist"
使用本地资源

可将 CSS 文件置于 assets 目录,并发布 KaTeX 所需的字体文件。

hugo.yaml
params:
  math:
    engine: katex
    katex:
      css: "css/katex.min.css"
      assets:
        - "fonts/KaTeX_Main-Regular.woff2"
        # 在此添加其他字体文件

此时将从 assets/css/katex.min.css 加载 KaTeX CSS 文件,而非从 CDN 下载。

MathJax

也可使用 MathJax 渲染数学表达式:

hugo.yaml
params:
  math:
    engine: mathjax

Note

可通过在项目中覆盖 layouts/_partials/scripts/mathjax.html 模板进一步定制 MathJax(如调整加载器选项或更改 CDN/源)。Hugo 将优先使用你的版本而非主题默认配置。

最后更新于