マークダウンで数式を書く方法|LaTeX記法の基本から複数行・行列、Obsidianでの運用まで
MarkdownでLaTeX記法の数式を書く方法をチートシート形式でまとめました。インライン・ディスプレイの基本、分数・総和・ギリシャ文字などの基本記法から、alignedによる式変形・場合分け・行列、機械学習ノートで使う記号まで。うまく表示されないときのチェックリストと、勉強ノートでの実戦例も載せています。
目次
はじめに
勉強ノートに、きれいな数式を残したいと思ったことはありませんか。
私はE資格(ディープラーニングの資格)の勉強をしていたとき、数式をノートにどう残すかで悩みました。
教科書の写真を貼ると後から直せないし、y = a*x^2 のようなベタ書きは読み返す気になれません。
結論としては、MarkdownのノートにはLaTeX記法の数式をそのまま書けるので、これを覚えるのが一番の近道でした。
この記事では、Markdownで数式を書く方法を、基本記法から複数行の式変形・行列・機械学習でよく使う記号まで、チートシートとして使える形でまとめます。
私はObsidianでノートを取っているので、Obsidianでのつまずきポイントも合わせて載せますが、記法自体はJupyter NotebookやGitHubなど他の環境でもほぼ共通です。
長いので、必要なところだけ拾い読みしてもらって大丈夫です。
それぞれ「書き方」をコードブロックで、「表示結果」を実際に描画された数式で並べていきます。
Markdownで数式が書ける仕組み
最初に前提だけ簡単に説明します。
実は、Markdown自体には数式の記法がありません。
数式を表示しているのは、MarkdownにくっついているMathJaxやKaTeXといった描画エンジンで、これらがLaTeX(ラテフ)記法で書かれた文字列を数式に組んでくれます。
LaTeXは理系の論文で昔から使われている組版システムで、その数式の書き方だけを借りてきている、というイメージです。
対応している環境はかなり広いです。
- Obsidian(MathJaxで描画)
- Jupyter Notebook
- GitHubのREADMEやIssue
- VS CodeのMarkdownプレビュー
プレーンテキストなので後から直せますし、Gitでのバージョン管理にもそのまま乗ります。
「LaTeXなんて大げさな」と思うかもしれませんが、使う記号はパターン化されているので、この記事のチートシートの範囲でほとんどのノートは書けてしまいます。
ちなみに、このブログもKaTeXという描画エンジンを使っています。
この記事の表示例は、画像ではなくすべてその場で描画された本物の数式です。
基本:$で挟むだけ
書き方は2通りです。
インライン数式:文章の中に数式を埋め込むときは $ で挟みます。
二次方程式 $ax^2 + bx + c = 0$ の解を考えます。
表示はこうなります:二次方程式 \(ax^2 + bx + c = 0\) の解を考えます。
ディスプレイ数式:数式を独立した行として大きく表示するときは $$ で挟みます。
$$x = \frac{-b \pm \sqrt{b^2 - 4ac}}{2a}$$
\[x = \frac{-b \pm \sqrt{b^2 - 4ac}}{2a}\]
使い分けの目安は、「文章の一部として触れる数式はインライン、あとで見返すときに目に留まってほしい重要な式はディスプレイ」です。
定義や公式はディスプレイにしておくと、ノートをスクロールしたときに拾いやすくなります。
Obsidianのライブプレビューなら、カーソルをその行から外した瞬間にきれいな数式に変わります。
チートシート1:基本記法
四則演算・比較
| 意味 | 書き方 | 表示 |
|---|---|---|
| 足し算・引き算 | x + y、x - y |
\(x + y\)、\(x - y\) |
| 掛け算 | x \times y、x \cdot y |
\(x \times y\)、\(x \cdot y\) |
| 割り算 | x \div y |
\(x \div y\) |
| 等しい・等しくない | x = y、x \neq y |
\(x = y\)、\(x \neq y\) |
| ほぼ等しい | x \approx y |
\(x \approx y\) |
| 大小 | x < y、x \leq y、x \geq y |
\(x < y\)、\(x \leq y\)、\(x \geq y\) |
上付き・下付き
| 意味 | 書き方 | 表示 |
|---|---|---|
| 上付き(2乗など) | x^2 |
\(x^2\) |
| 下付き(添え字) | x_i |
\(x_i\) |
| 組み合わせ | x_i^2 |
\(x_i^2\) |
| 2文字以上は波カッコ | x^{10}、e^{-x} |
\(x^{10}\)、\(e^{-x}\) |
この「2文字以上は {} でくくる」が最初のつまずきポイントです。
x^10 と書くと「xの1乗」と「0」に分かれて \(x^10\) になってしまいます。
指数に式を入れるとき(e^{-\frac{x^2}{2}} → \(e^{-\frac{x^2}{2}}\) など)も同じルールです。
分数・ルート
| 意味 | 書き方 | 表示 |
|---|---|---|
| 分数 | \frac{分子}{分母} |
\(\frac{x+1}{y-1}\) |
| 平方根 | \sqrt{x} |
\(\sqrt{x}\) |
| n乗根 | \sqrt[n]{x} |
\(\sqrt[n]{x}\) |
分数が入れ子になるとき(分数の中に分数)は、そのまま \frac を重ねられます。
読みにくくなったら、後述のalignedで式を分けるほうがノートとしては見やすいです。
総和・積分・極限
| 意味 | 書き方 | 表示 |
|---|---|---|
| 総和 | \sum_{i=1}^{n} x_i |
\(\sum_{i=1}^{n} x_i\) |
| 積分 | \int_{a}^{b} f(x)dx |
\(\int_{a}^{b} f(x)dx\) |
| 極限 | \lim_{x \to \infty} |
\(\lim_{x \to \infty}\) |
いずれも「下限は _{}、上限は ^{}」という統一ルールです。
上付き・下付きの応用になっているのがわかると、覚えることが一気に減ります。
ギリシャ文字
\alpha \beta \gamma \theta \lambda \mu \sigma \pi のように、名前をそのまま書くだけです(\(\alpha\) \(\beta\) \(\gamma\) \(\theta\) \(\lambda\) \(\mu\) \(\sigma\) \(\pi\))。
大文字は先頭を大文字にします(\Sigma → \(\Sigma\)、\Delta → \(\Delta\))。
機械学習のノートだと \(\theta\)(パラメータ)と \(\sigma\)(標準偏差・シグモイド)は本当によく使います。
チートシート2:複数行・場合分け・行列
勉強ノートで実際に必要になるのは、実はここからです。
複数行の式変形(aligned)
式変形を = の位置で揃えて並べるには aligned 環境を使います。
$$
\begin{aligned}
(x+1)^2 &= x^2 + 2x + 1 \\
&= x(x+2) + 1
\end{aligned}
$$
\[ \begin{aligned} (x+1)^2 &= x^2 + 2x + 1 \\ &= x(x+2) + 1 \end{aligned} \]
& を置いた位置が縦に揃い、\\ が改行です。
数式の導出をノートに残すときはほぼこれを使っています。
「教科書の式変形を1ステップずつ追った記録」がそのまま残せるので、後から見返したときに「なぜこうなるんだっけ」が起きません。
場合分け(cases)
絶対値や区分的な定義は cases 環境で書けます。
$$
|x| =
\begin{cases}
x & (x \geq 0) \\
-x & (x < 0)
\end{cases}
$$
\[ |x| = \begin{cases} x & (x \geq 0) \\ -x & (x < 0) \end{cases} \]
こちらも & が揃え位置、\\ が改行という同じルールです。
行列(pmatrix・bmatrix・vmatrix)
行列は matrix 系の環境を使います。
丸カッコなら pmatrix、角カッコなら bmatrix、行列式の縦棒なら vmatrix です。
$$
A = \begin{pmatrix} a & b \\ c & d \end{pmatrix},\quad
B = \begin{bmatrix} 1 & 0 \\ 0 & 1 \end{bmatrix},\quad
\det A = \begin{vmatrix} a & b \\ c & d \end{vmatrix}
$$
\[ A = \begin{pmatrix} a & b \\ c & d \end{pmatrix},\quad B = \begin{bmatrix} 1 & 0 \\ 0 & 1 \end{bmatrix},\quad \det A = \begin{vmatrix} a & b \\ c & d \end{vmatrix} \]
中身の区切りは aligned と同じで、列の区切りが &、行の区切りが \\ です。
aligned・cases・matrix と、\begin{...} ... \end{...} の形の環境はぜんぶ「& で揃えて \\ で改行」なので、1つ覚えれば全部同じ要領で書けます。
チートシート3:機械学習・統計でよく使う記号
E資格や統計の勉強ノートで出番が多かった記号をまとめます。
| 意味 | 書き方 | 表示 |
|---|---|---|
| 偏微分 | \frac{\partial L}{\partial w} |
\(\frac{\partial L}{\partial w}\) |
| 勾配(ナブラ) | \nabla_\theta L(\theta) |
\(\nabla_\theta L(\theta)\) |
| 推定値のハット | \hat{y} |
\(\hat{y}\) |
| 平均のバー | \bar{x} |
\(\bar{x}\) |
| ベクトル・行列の太字 | \mathbf{w}^\top \mathbf{x} |
\(\mathbf{w}^\top \mathbf{x}\) |
| 条件付き確率 | P(A \mid B) |
\(P(A \mid B)\) |
| 分布に従う | X \sim N(\mu, \sigma^2) |
\(X \sim N(\mu, \sigma^2)\) |
| 集合に属する | x \in \mathbb{R} |
\(x \in \mathbb{R}\) |
| 部分集合・和集合・積集合 | A \subset B、A \cup B、A \cap B |
\(A \subset B\)、\(A \cup B\)、\(A \cap B\) |
| 矢印 | \to、\Rightarrow、\leftarrow |
\(\to\)、\(\Rightarrow\)、\(\leftarrow\) |
| 無限大 | \infty |
\(\infty\) |
組み合わせの実例をいくつか挙げます。
- 勾配降下法の更新式:
\theta \leftarrow \theta - \eta \nabla_\theta L(\theta)→ \(\theta \leftarrow \theta - \eta \nabla_\theta L(\theta)\) - argmax:
\arg\max_\theta P(y \mid x; \theta)→ \(\arg\max_\theta P(y \mid x; \theta)\) - 条件付き確率の縦棒は
\midを使うときれいに空きます
\(\sim\) は「確率変数Xが正規分布に従う」を \(X \sim N(\mu, \sigma^2)\) と書くときの「〜」で、統計のノートでは毎ページ級に使います。
数式の中に日本語を入れる(\text)
数式の中に日本語や普通の単語を入れたいときは \text{} を使います。
$$\text{精度} = \frac{\text{正解数}}{\text{全体数}}$$
\[\text{精度} = \frac{\text{正解数}}{\text{全体数}}\]
\text{} を使わずに日本語を直接書くと、フォントや間隔が崩れることがあります。
括弧のサイズを自動調整する(\left \right)
分数を普通の括弧で挟むと、括弧が小さくて不格好になります。
\left( と \right) を使うと中身の高さに合わせて自動で伸びます。
$$\left( \frac{1}{n} \sum_{i=1}^{n} x_i \right)^2$$
\[\left( \frac{1}{n} \sum_{i=1}^{n} x_i \right)^2\]
ちなみに、記法を全部暗記する必要はありません。
複雑な数式は、今どきはChatGPTやClaudeに「この数式をLaTeXで書いて」と教科書の写真ごと投げれば一発で出してくれます。
よく使うものは手で書けて、珍しいものはAIに聞ける、というバランスが一番実用的だと思います。
うまく表示されないときのチェックリスト
実際にObsidianで運用していて引っかかりやすい点をまとめておきます。
数式が描画されないときは、上から順に疑ってみてください。
- $の内側に余計なスペースを入れていないか。
$x$は描画されますが、$ x $のように$の直後・直前に空白があると、数式として認識されないことがあります - 2文字以上を
{}でくくり忘れていないか。x^10やx_maxは途中で切れます。x^{10}、x_{max}と書きます - 文章中の$記号(ドル表記)と衝突していないか。 「$100」のような金額を書くと、意図せず数式扱いされて表示が崩れることがあります。金額として書きたいときは
\$100とエスケープすれば大丈夫です - コードブロックの中に入れていないか。 バッククォート3つで囲んだ中の
$...$はただの文字列のままです。この記事の記法例がそのまま見えているのも、コードブロックに入れているからです。逆に言うと、「記法そのものをメモしたいとき」はコードブロックに入れる、と使い分けられます - ディスプレイ数式の前後を空行で区切っているか。 箇条書きの途中などに
$$ブロックを挟むと、描画が崩れることがあります。独立した段落として前後に空行を置くのが安全です - 環境の方言に引っかかっていないか。 基本記法は共通ですが、細かい挙動は環境ごとに微妙に違います。たとえばnoteの数式記法はObsidianとずれていて、Obsidianのノートをそのまま貼ると数式部分だけ崩れます。noteへの転載ルールは別の記事にまとめています
実戦例:勉強ノートの1ページ
最後に、実際のノートでの使い方のイメージです。
正規分布の確率密度関数をノートに残すなら、こう書きます。
## 正規分布
平均 $\mu$、分散 $\sigma^2$ の正規分布の確率密度関数:
$$
f(x) = \frac{1}{\sqrt{2\pi\sigma^2}} \exp\left( -\frac{(x-\mu)^2}{2\sigma^2} \right)
$$
- $\mu$ が分布の中心、$\sigma$ が広がりを決める
- 指数の中身は「平均からの距離の2乗」→ 遠いほど確率密度が下がる
描画されるとこうなります。
平均 \(\mu\)、分散 \(\sigma^2\) の正規分布の確率密度関数:
\[ f(x) = \frac{1}{\sqrt{2\pi\sigma^2}} \exp\left( -\frac{(x-\mu)^2}{2\sigma^2} \right) \]
- \(\mu\) が分布の中心、\(\sigma\) が広がりを決める
- 指数の中身は「平均からの距離の2乗」→ 遠いほど確率密度が下がる
数式(ディスプレイ)+記号の意味(インライン入りの箇条書き)というこの型を決めておくと、どの単元のノートも同じ形で積み上がっていきます。
私はこの型でE資格の数学ノートを作っていました(そのときの勉強法はこちらの記事に書いています)。
型のポイントは3つです。
- 公式そのものはディスプレイ数式で独立させる(あとで公式だけ拾い読みできる)
- 記号の意味は箇条書きで、インライン数式込みで書く(\(\mu\) のように記号のまま書くと、公式との対応が取りやすい)
- 導出が要る式はalignedで1ステップずつ(試験前に「なぜこうなる」を再確認できる)
逆に、教科書の説明文まで丸写しするのはおすすめしません。
数式と記号の意味、それに自分のつまずきメモだけに絞ったほうが、復習のときに密度の高いノートになります。
まとめ
いかがでしたか。
今回は、Markdownで数式を書く方法をチートシート形式でまとめました。
- インラインは
$...$、独立表示は$$...$$。重要な式はディスプレイに - 基本は分数
\frac・ルート\sqrt・総和\sum・「2文字以上は{}」の4点セット - 式変形はaligned、場合分けはcases、行列はpmatrix。どれも「
&で揃えて\\で改行」 - 機械学習ノートは
\partial\nabla\hat{}\mathbf{}\text{}まで覚えると教科書の式が写せる - 描画されないときは$の内側のスペース・
{}のくくり忘れ・エスケープ・空行を疑う
数式がきれいに残せるようになると、勉強ノートを読み返すのが楽しくなります。
ぜひ試してみてください。
この記事が誰かの役に立てばうれしいです。