- LaTeX = 組版システム(TeX エンジン+マクロ)。論文・書籍・スライドなど文書全体を美しく組むためのツール。
- KaTeX = ブラウザ用 JS ライブラリ。数式(TeX 記法)だけを超高速にレンダリングして HTML に表示するためのもの。
- 使い分け:PDF を作るなら LaTeX、Web で数式を表示するなら KaTeX(or MathJax)。
- TeX(ドナルド・クヌースの低レベル組版)をベースに、文書作成を簡潔にする高級マクロ群が LaTeX。
- 数式・段組・相互参照・目次・参考文献など、学術文書の王道。
- エンジン:
pdfLaTeX(古典・安定)、XeLaTeX(Unicode & OS フォント簡単)、LuaLaTeX(拡張性・制御性高い)。 - 配布:TeX Live(クロスプラットフォーム)、MiKTeX(Windows 寄り)、MacTeX(macOS 向け)。
- エディタ:VS Code + LaTeX Workshop、Texmaker、TeXstudio、Overleaf(クラウド)。
\documentclass[a4paper,12pt]{article}
\usepackage{amsmath,amssymb}
\usepackage{hyperref}
\title{Minimal LaTeX}
\author{Author}
\date{}
\begin{document}
\maketitle
微分方程式の解は
\begin{equation}
y(x) = C e^{\lambda x}, \quad \lambda \in \mathbb{R}.
\end{equation}
参照:式~\eqref{eq:gauss} はガウス積分。
\begin{equation}
\int_{-\infty}^{\infty} e^{-x^2} \, dx = \sqrt{\pi}.
\label{eq:gauss}
\end{equation}
\end{document}equation(番号つき)align(整列・複数行)gather(中央寄せ)cases(場合分け)pmatrix(丸かっこ行列)
hyperref(PDF 内リンク/しおり)cleveref(式・図表の賢い参照)biblatex+biber(文献管理)- 日本語:
xeCJK(XeLaTeX)やluatexja(LuaLaTeX)
- 組版品質(ハイフネーション、余白、禁則、相互参照)。
- 巨大文書の管理に強い(章立て、図表、索引)。
- クライアント/サーバ側で動く JS レンダラ。TeX(主に LaTeX の数学記法)を HTML+CSS(+一部フォント)に変換。
- 超高速・軽量、オフラインでも動作可能、SSG/SSR にも相性 ◎。
- ブログ/ドキュメント/学習サイトにインライン数式やディスプレイ数式をサクッと表示。
- SPA/SSR(Next.js, Nuxt, Astro など)や Markdown エンジンと組み合わせる。
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex/dist/katex.min.css" />
<script defer src="https://cdn.jsdelivr.net/npm/katex/dist/katex.min.js"></script>
<script defer src="https://cdn.jsdelivr.net/npm/katex/dist/contrib/auto-render.min.js"></script>
<script>
document.addEventListener('DOMContentLoaded', function () {
renderMathInElement(document.body, {
delimiters: [
{ left: '$$', right: '$$', display: true },
{ left: '$', right: '$', display: false },
{ left: '\\[', right: '\\]', display: true },
{ left: '\\(', right: '\\)', display: false },
],
throwOnError: false,
});
});
</script>- **
auto-render**で、$...$(インライン)・$$...$$(ブロック)を自動検出して描画。 - サニタイズは別途考慮(ユーザー入力を直描画する場合)。
import 'katex/dist/katex.min.css';
import katex from 'katex';
export function Formula({ expr }) {
const ref = React.useRef(null);
React.useEffect(() => {
if (ref.current)
katex.render(expr, ref.current, {
displayMode: false,
throwOnError: false,
});
}, [expr]);
return <span ref={ref} />;
}- LaTeX 全機能ではなく「数学マクロ中心のサブセット」。文書クラス、図表、参考文献、ページレイアウト等は対象外。
amsmathの多くのコマンドは対応。align,cases,matrixなど OK。- 一部のマクロは未対応や挙動差あり(拡張パッケージのニッチ機能など)。
- レンダリングが非常に速い(大量の式でも軽い)。
- サーバサイドレンダリング可能(Node で文字列 → HTML 化)。
- KaTeX:速度最優先・軽量・対応コマンドはやや少なめ。
- MathJax:互換性広い・機能豊富・やや重め。
- 「高速ブログや学習サイト」→ KaTeX、「互換性を最優先」→ MathJax、が目安。
右列はすべて KaTeX で描画されるよう
$...$で囲っています。
| 目的 | 記法 | 例 |
|---|---|---|
| 上付き/下付き | x^2, a_{ij} | |
| 分数 | \frac{a}{b} | |
| ルート | \sqrt{x}, \sqrt[n]{x} | |
| ギリシャ文字 | \alpha, \beta, \Gamma | |
| 微分 | \frac{d f}{d x}, f' | |
| 積分 | \int_a^b f(x),dx | |
| 極限 | \lim_{x\to 0} f(x) | |
| 総和/総積 | \sum*{i=1}^n, \prod*{k=1}^m | |
| 行列 | \begin{pmatrix} a & b \ c & d \end{pmatrix} | $\begin{pmatrix} a & b \ c & d \end{pmatrix}$ |
| 場合分け | \begin{cases} ... \end{cases} | $\begin{cases} \text{case} \end{cases}$ |
| 省略記号 | \cdots, \ldots | |
| 矢印 | \to, \Rightarrow |
スペース:, ; \quad で可読性 UP。例:$f(x),dx$。
- 多くの MD ツールはインライン
$...$、ブロック$$...$$をサポート(ビルダー側設定や拡張が必要)。 - Docusaurus, VitePress, Gatsby, Next.js Docs などは、KaTeX プラグインを ON にすると
$記法で数式を描画可能。 -
\(\)や\[\]を区切りに使う場合、Markdown のエスケープと干渉しないよう注意。
- LaTeX → KaTeX へ丸ごと貼る:NG。KaTeX は数式部分だけ。文書構造や図表は落ちる。
- 制御綴りのバックスラッシュ:
\\が必要な文脈(JS 文字列や MD コードブロック内)に注意。 - 未対応マクロ:KaTeX でエラーになったら、同等の別記法に置換。
throwOnError:falseで回避しつつ、なるべく正しい置換を。 - フォント崩れ:CSS や外部フォント読み込みの順番を見直し。KaTeX の CSS は必ず読み込む。
- 数式中のテキスト:
\text{...}推奨(amsmath)。KaTeX でもサポート。
- LaTeX 原稿を Web 化:本文は Markdown に移し、式だけ TeX 記法で残す。ビルダー側で KaTeX を有効化。
- Pandoc:LaTeX → Docx/HTML/MD に変換。
--katexオプションで KaTeX 向け HTML を生成可能(ビルド環境に応じて)。 - SSR:Node 側で KaTeX レンダリングしてから配信すると、初回描画が速く SEO にも良い。
- PDF や印刷品質が必要:LaTeX(XeLaTeX/LuaLaTeX を優先、フォント周りが楽)
- Web で軽く速く:KaTeX(大量式でも快適)
- 互換性最優先の Web:MathJax(ただし重め)
-
alignで整列(LaTeX/KaTeX)\begin{align} f(x) &= x^2 + 1 \\ &= x^2 + 2x + 1 - 2x \end{align}
&位置で縦に揃う。KaTeX でも OK。 -
番号の制御(LaTeX)
\tag{*}で手動番号、\numberwithin{equation}{section}で節ごと番号。
-
テキスト混在:
\text{argmin over x}のように文章を式に入れると読みやすい。
- LaTeX は 文書全体の組版 の覇者、KaTeX は Web 数式表示 の俊足ランナー。
- 目的に合わせて併用すると最強です。
- まずは「PDF が要るか?」「Web 表示か?」で分けて、必要なら LaTeX(文書)+ KaTeX(Web 式) の二刀流にしましょう。