LaTeX
LaTeX の数式表現はデフォルトで を使用してレンダリングされます。特別な設定なしで、Markdown コンテンツ内に直接記述できます。
使用方法
LaTeX はインライン式とブロック式の両方で使用できます。
インライン数式
文中に数式を含めるには、\(
と \)
で囲みます。
この \(\sigma(z) = \frac{1}{1 + e^{-z}}\) はインライン式です。
この はインライン式です。
ディスプレイ数式
独立した段落として表示する数式には、$$
で囲みます。
$$F(\omega) = \int_{-\infty}^{\infty} f(t)\, e^{-j \omega t} \, dt$$
次のようにレンダリングされます:
複数行の数式には aligned
などの LaTeX 環境も使用できます。
$$
\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 拡張がデフォルトで有効になっており、化学式を簡単に記述できます。
インライン: は水です。
独立段落:
$$\ce{Hg^2+ ->[I-] HgI2 ->[I-] [Hg^{II}I4]^2-}$$
次のようにレンダリングされます:
設定
Important
Hugo が Markdown コンテンツ内の LaTeX 数式を認識できるよう、パススルー拡張 を Hugo 設定ファイルで有効にしてください。
markup:
goldmark:
extensions:
passthrough:
delimiters:
block: [['\[', '\]'], ["$$", "$$"]]
inline: [['\(', '\)']]
enable: true
数式エンジン
KaTeX はビルド時に LaTeX 数式をレンダリングするデフォルトエンジンで、Hugo でサポートされています。
デフォルトは KaTeX ですが、MathJax のみの機能が必要な場合は MathJax に切り替えられます。
KaTeX
デフォルト設定では追加の設定は不要です。Hugo は KaTeX の CSS を CDN から取得します。
特定のバージョンを固定したりローカルアセットを使用する場合は、hugo.yaml
ファイルで設定できます。
CDN ベース URL の上書き
params:
math:
engine: katex
katex:
base: "https://cdn.jsdelivr.net/npm/katex@0.16.22/dist"
ローカルアセットの使用
CSS ファイルを assets
ディレクトリに配置し、KaTeX に必要なフォントファイルを追加できます。
params:
math:
engine: katex
katex:
css: "css/katex.min.css"
assets:
- "fonts/KaTeX_Main-Regular.woff2"
# 他のフォントファイルをここに追加
これにより、CDN ではなく assets/css/katex.min.css
から KaTeX CSS ファイルが読み込まれます。
MathJax
代わりに MathJax を使用して数式をレンダリングすることもできます:
params:
math:
engine: mathjax
Note
MathJax をさらにカスタマイズするには(ローダーオプションの調整や CDN/ソースの変更など)、プロジェクトの layouts/_partials/scripts/mathjax.html
でテンプレートを上書きしてください。Hugo はテーマのデフォルトではなく、あなたのバージョンを使用します。