「研究論文や技術資料をマークダウンで書きたいけど、数式の表現方法がわからない」
「√や∑といった数学記号をきれいに表示したい」
「エクセルの関数をドキュメントで説明したいけど、どう書けばいいの?」
そんな悩みを持ったことはありませんか?マークダウンはシンプルで使いやすい文書作成言語ですが、数式表現については少し特別な知識が必要です。
しかし、LaTeX記法を組み合わせることで、プロフェッショナルな品質の数学文書を作成できるようになります。
この記事では、マークダウンでの数式表現の基本から、実践的なLaTeX記法、各プラットフォームでの対応状況まで、初心者の方でも理解できるよう詳しく解説します。
大学の研究レポート、技術ブログの投稿、統計資料の作成など、様々な場面で活用できる内容となっています。
マークダウンと数式表現の基礎知識
マークダウンの限界と拡張
純粋なマークダウン(CommonMark)には、数式を表現するための標準的な記法が存在しません。
しかし、多くのプラットフォームやツールでは、LaTeX(ラテフ)記法を組み合わせた拡張マークダウンを採用することで、美しい数式表現を可能にしています。
LaTeXとは?
LaTeX(ラテフ、レイテック)は、学術論文や技術文書の作成で世界的に使用されている組版システムです。
特に数式表現においては、プロフェッショナルレベルの美しい出力を得ることができます。
LaTeXの特徴:
- 複雑な数式の正確な表現
- 一貫した書式設定
- 国際的な学術標準として採用
- 豊富な数学記号とレイアウト機能
マークダウンとLaTeXの組み合わせ
現在、多くのプラットフォームでは、マークダウンの中にLaTeX記法を埋め込むことで数式を表現します:
# 物理学の基本法則
ニュートンの運動方程式は以下のように表されます:
$$F = ma$$
ここで、$F$は力、$m$は質量、$a$は加速度を表します。
基本的な数式の書き方
インライン数式(文中数式)
文章の流れの中に数式を挿入する場合、$
(ドル記号)で囲んで記述します。
基本的な書き方
円の面積は $A = \pi r^2$ で計算できます。
物理定数では、光速を $c = 3.0 \times 10^8 \text{ m/s}$ とします。
統計学では、平均を $\mu$、標準偏差を $\sigma$ で表します。
複雑な表現の例
二次方程式 $ax^2 + bx + c = 0$ の解は $x = \frac{-b \pm \sqrt{b^2 - 4ac}}{2a}$ です。
確率密度関数は $f(x) = \frac{1}{\sqrt{2\pi\sigma^2}} e^{-\frac{(x-\mu)^2}{2\sigma^2}}$ で表されます。
ブロック数式(ディスプレイ数式)
独立した行に大きく数式を表示する場合、$$
で囲んで記述します。
基本的な書き方
アインシュタインの質量エネルギー等価性:
$$E = mc^2$$
ガウス分布の確率密度関数:
$$f(x) = \frac{1}{\sqrt{2\pi\sigma^2}} \exp\left(-\frac{(x-\mu)^2}{2\sigma^2}\right)$$
複数行の数式
$$
\begin{align}
x &= a + b \\
y &= c + d \\
z &= e + f
\end{align}
$$
LaTeX記法による数式表現
基本的な演算子と記号
四則演算
加法: $a + b$
減法: $a - b$
乗法: $a \times b$ または $a \cdot b$
除法: $a \div b$ または $\frac{a}{b}$
指数と根号
指数: $x^2$, $x^{n}$, $e^{x}$
下付き文字: $x_1$, $x_{i+1}$, $H_2O$
平方根: $\sqrt{x}$, $\sqrt{a^2 + b^2}$
n乗根: $\sqrt[3]{x}$, $\sqrt[n]{x}$
分数
基本の分数: $\frac{1}{2}$, $\frac{a}{b}$
複雑な分数: $\frac{x^2 + 3x + 2}{x + 1}$
連分数: $\frac{1}{1 + \frac{1}{2 + \frac{1}{3}}}$
ギリシャ文字
小文字
$\alpha$ (アルファ), $\beta$ (ベータ), $\gamma$ (ガンマ), $\delta$ (デルタ)
$\epsilon$ (イプシロン), $\zeta$ (ゼータ), $\eta$ (イータ), $\theta$ (シータ)
$\iota$ (イオタ), $\kappa$ (カッパ), $\lambda$ (ラムダ), $\mu$ (ミュー)
$\nu$ (ニュー), $\xi$ (クサイ), $\pi$ (パイ), $\rho$ (ロー)
$\sigma$ (シグマ), $\tau$ (タウ), $\upsilon$ (ウプシロン), $\phi$ (ファイ)
$\chi$ (カイ), $\psi$ (プサイ), $\omega$ (オメガ)
大文字
$\Gamma$ (ガンマ), $\Delta$ (デルタ), $\Theta$ (シータ), $\Lambda$ (ラムダ)
$\Xi$ (クサイ), $\Pi$ (パイ), $\Sigma$ (シグマ), $\Upsilon$ (ウプシロン)
$\Phi$ (ファイ), $\Psi$ (プサイ), $\Omega$ (オメガ)
総和・積分・極限
総和記号
基本の総和: $\sum_{i=1}^{n} i$
複雑な総和: $\sum_{i=1}^{n} i^2 = \frac{n(n+1)(2n+1)}{6}$
無限総和: $\sum_{n=0}^{\infty} \frac{1}{2^n} = 2$
積分記号
不定積分: $\int x^2 \, dx$
定積分: $\int_0^1 x^2 \, dx$
重積分: $\iint_D f(x,y) \, dx \, dy$
線積分: $\oint_C \mathbf{F} \cdot d\mathbf{r}$
極限
基本の極限: $\lim_{x \to 0} \frac{\sin x}{x} = 1$
無限大への極限: $\lim_{n \to \infty} \left(1 + \frac{1}{n}\right)^n = e$
左極限・右極限: $\lim_{x \to 0^+} f(x)$, $\lim_{x \to 0^-} f(x)$
論理記号と集合記号
論理記号
論理積: $A \land B$ (AND)
論理和: $A \lor B$ (OR)
否定: $\lnot A$ (NOT)
含意: $A \Rightarrow B$ (ならば)
同値: $A \Leftrightarrow B$ (同値)
集合記号
要素: $x \in A$ (属する), $x \notin A$ (属さない)
部分集合: $A \subset B$, $A \subseteq B$
和集合: $A \cup B$
積集合: $A \cap B$
差集合: $A \setminus B$
空集合: $\emptyset$
線形代数
行列
基本の行列:
$$
A = \begin{pmatrix}
a & b \\
c & d
\end{pmatrix}
$$
3×3行列:
$$
B = \begin{bmatrix}
1 & 2 & 3 \\
4 & 5 & 6 \\
7 & 8 & 9
\end{bmatrix}
$$
行列式:
$$
\det(A) = \begin{vmatrix}
a & b \\
c & d
\end{vmatrix} = ad - bc
$$
ベクトル
列ベクトル:
$$
\mathbf{v} = \begin{pmatrix}
v_1 \\
v_2 \\
v_3
\end{pmatrix}
$$
内積: $\mathbf{u} \cdot \mathbf{v} = u_1v_1 + u_2v_2 + u_3v_3$
外積: $\mathbf{u} \times \mathbf{v}$
ノルム: $\|\mathbf{v}\| = \sqrt{v_1^2 + v_2^2 + v_3^2}$
微分・偏微分
基本的な微分記号
微分: $\frac{d}{dx} f(x)$, $f'(x)$, $\dot{x}$
二次微分: $\frac{d^2}{dx^2} f(x)$, $f''(x)$, $\ddot{x}$
偏微分: $\frac{\partial}{\partial x} f(x,y)$, $f_x$
混合偏微分: $\frac{\partial^2}{\partial x \partial y} f(x,y)$
微分の応用例
ライプニッツ則:
$$
\frac{d}{dx}[f(x)g(x)] = f'(x)g(x) + f(x)g'(x)
$$
連鎖律:
$$
\frac{df}{dx} = \frac{df}{du} \cdot \frac{du}{dx}
$$
勾配ベクトル:
$$
\nabla f = \left(\frac{\partial f}{\partial x}, \frac{\partial f}{\partial y}, \frac{\partial f}{\partial z}\right)
$$
実践的な数式作成例
統計学の例
基本統計量
## 基本統計量
**平均値(算術平均)**:
$$\bar{x} = \frac{1}{n} \sum_{i=1}^{n} x_i$$
**分散**:
$$s^2 = \frac{1}{n-1} \sum_{i=1}^{n} (x_i - \bar{x})^2$$
**標準偏差**:
$$s = \sqrt{s^2} = \sqrt{\frac{1}{n-1} \sum_{i=1}^{n} (x_i - \bar{x})^2}$$
**相関係数**:
$$r = \frac{\sum_{i=1}^{n}(x_i - \bar{x})(y_i - \bar{y})}{\sqrt{\sum_{i=1}^{n}(x_i - \bar{x})^2 \sum_{i=1}^{n}(y_i - \bar{y})^2}}$$
確率分布
## 主要な確率分布
**正規分布** $N(\mu, \sigma^2)$:
$$f(x) = \frac{1}{\sqrt{2\pi\sigma^2}} \exp\left(-\frac{(x-\mu)^2}{2\sigma^2}\right)$$
**ポアソン分布** $\text{Po}(\lambda)$:
$$P(X = k) = \frac{\lambda^k e^{-\lambda}}{k!}, \quad k = 0, 1, 2, \ldots$$
**二項分布** $\text{B}(n, p)$:
$$P(X = k) = \binom{n}{k} p^k (1-p)^{n-k}$$
**ベイズの定理**:
$$P(A|B) = \frac{P(B|A)P(A)}{P(B)}$$
物理学の例
力学
## 古典力学
**ニュートンの運動法則**:
1. 慣性の法則: 外力が働かない物体は等速直線運動を続ける
2. 運動方程式: $\mathbf{F} = m\mathbf{a}$
3. 作用反作用の法則: $\mathbf{F}_{AB} = -\mathbf{F}_{BA}$
**運動エネルギー**:
$$K = \frac{1}{2}mv^2$$
**位置エネルギー**:
$$U = mgh$$
**力学的エネルギー保存則**:
$$K + U = \text{一定}$$
電磁気学
## 電磁気学
**クーロンの法則**:
$$F = k \frac{q_1 q_2}{r^2}$$
**電場**:
$$\mathbf{E} = \frac{\mathbf{F}}{q}$$
**磁場中の荷電粒子に働く力(ローレンツ力)**:
$$\mathbf{F} = q(\mathbf{E} + \mathbf{v} \times \mathbf{B})$$
**マクスウェル方程式**:
$$
\begin{align}
\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 \mathbf{J} + \mu_0 \varepsilon_0 \frac{\partial \mathbf{E}}{\partial t}
\end{align}
$$
工学分野の例
信号処理
## 信号処理
**フーリエ変換**:
$$F(\omega) = \int_{-\infty}^{\infty} f(t) e^{-j\omega t} dt$$
**離散フーリエ変換(DFT)**:
$$X[k] = \sum_{n=0}^{N-1} x[n] e^{-j2\pi kn/N}$$
**畳み込み**:
$$y(t) = (f * g)(t) = \int_{-\infty}^{\infty} f(\tau) g(t - \tau) d\tau$$
**ラプラス変換**:
$$F(s) = \mathcal{L}\{f(t)\} = \int_0^{\infty} f(t) e^{-st} dt$$
制御工学
## 制御理論
**伝達関数**:
$$G(s) = \frac{Y(s)}{X(s)}$$
**PID制御器**:
$$u(t) = K_p e(t) + K_i \int_0^t e(\tau) d\tau + K_d \frac{de(t)}{dt}$$
**状態方程式**:
$$
\begin{align}
\dot{\mathbf{x}}(t) &= \mathbf{A}\mathbf{x}(t) + \mathbf{B}\mathbf{u}(t) \\
\mathbf{y}(t) &= \mathbf{C}\mathbf{x}(t) + \mathbf{D}\mathbf{u}(t)
\end{align}
$$
プラットフォーム別対応状況
完全対応プラットフォーム
Jupyter Notebook / JupyterLab
特徴:
$...$
と$$...$$
の両方をサポート- MathJaxによる高品質なレンダリング
- リアルタイムプレビュー
使用例:
# データ分析レポート
分析対象のデータセットでは、平均値が $\mu = 45.6$ 、標準偏差が $\sigma = 12.3$ でした。
正規性の検定結果:
$$t = \frac{\bar{x} - \mu_0}{s/\sqrt{n}} = 2.34$$
Qiita
特徴:
- 技術ブログプラットフォームとして数式表示に対応
$...$
と$$...$$
をサポート- コードブロックとの併用が可能
投稿例:
# 機械学習における損失関数
## 平均二乗誤差(MSE)
$$\text{MSE} = \frac{1}{n} \sum_{i=1}^{n} (y_i - \hat{y}_i)^2$$
## 交差エントロピー
$$\text{CE} = -\sum_{i=1}^{n} y_i \log(\hat{y}_i)$$
Notion
特徴:
$$...$$
記法をサポート- ブロック形式での数式表示
- 数式ブロックとテキストブロックの組み合わせが可能
Obsidian
特徴:
- MathJaxプラグインによる数式サポート
$...$
と$$...$$
の両方に対応- リアルタイムプレビュー
部分対応・要設定プラットフォーム
GitHub
現状:
- 標準のREADME.mdでは数式表示未対応
$...$
記号がそのまま表示される
回避方法:
方法1:画像として数式を埋め込み
<img src="https://latex.codecogs.com/svg.latex?E=mc^2" />
方法2:GitHub Pagesの使用 Jekyll + MathJaxを組み合わせることで数式表示が可能
方法3:外部サービスの利用
- LaTeX形式の数式を画像に変換するサービスを利用
- CodeCogs、QuickLaTeX等
GitLab
特徴:
- GitLab 11.0以降でKaTeX記法をサポート
$...$
と$$...$$
に対応- READMEファイルやWikiで使用可能
WordPress
特徴:
- プラグインによる数式対応
- Jetpack、MathJax-LaTeX等のプラグインが利用可能
設定例:
[latex]E = mc^2[/latex]
Visual Studio Code での数式表示
必要な拡張機能
Markdown Preview Enhanced
- 最も人気の高いマークダウンプレビュー拡張
- MathJaxとKaTeXの両方をサポート
- PDF出力も可能
Markdown All in One
- 数式プレビューを含む包括的なマークダウン機能
- ショートカットキーが豊富
設定方法:
- 拡張機能をインストール
Ctrl+Shift+V
でプレビューを表示- 数式が自動的にレンダリングされる
数式入力の効率化テクニック
よく使う記号の短縮記法
関数名
三角関数: $\sin x$, $\cos x$, $\tan x$
双曲線関数: $\sinh x$, $\cosh x$, $\tanh x$
逆三角関数: $\arcsin x$, $\arccos x$, $\arctan x$
対数関数: $\log x$, $\ln x$, $\log_2 x$
指数関数: $\exp(x)$
演算子
合成関数: $f \circ g$
比例: $a \propto b$
近似: $a \approx b$
漸近: $a \sim b$
定義: $a \triangleq b$ または $a := b$
複雑な数式の分割表示
align環境の活用
$$
\begin{align}
f(x) &= x^2 + 2x + 1 \\
&= (x + 1)^2 \\
&= (x + 1)(x + 1)
\end{align}
$$
cases環境(場合分け)
$$
f(x) = \begin{cases}
x^2 & \text{if } x \geq 0 \\
-x^2 & \text{if } x < 0
\end{cases}
$$
長い式の改行
$$
\begin{multline}
(a + b + c + d + e + f)^2 = \\
a^2 + b^2 + c^2 + d^2 + e^2 + f^2 + \\
2(ab + ac + ad + ae + af + bc + bd + be + bf + cd + ce + cf + de + df + ef)
\end{multline}
$$
エラーの回避方法
特殊文字のエスケープ
正しい: $\text{pH} = -\log[\text{H}^+]$
間違い: $pH = -log[H+]$ (文字が斜体になってしまう)
正しい: $\text{CO}_2$
間違い: $CO_2$ (Cとが掛け算として解釈される)
スペースの調整
適切なスペース: $\int_0^1 f(x) \, dx$ (積分記号と被積分関数の間)
関数の引数: $f(x)$ ではなく $f( x )$ は避ける
高度な数式表現
化学式
$$\ce{H2SO4 + 2NaOH -> Na2SO4 + 2H2O}$$
$$\ce{C6H12O6 + 6O2 -> 6CO2 + 6H2O}$$
図表と数式の組み合わせ
| 関数 | 導関数 | 積分 |
|------|--------|------|
| $x^n$ | $nx^{n-1}$ | $\frac{x^{n+1}}{n+1}$ |
| $e^x$ | $e^x$ | $e^x$ |
| $\sin x$ | $\cos x$ | $-\cos x$ |
| $\cos x$ | $-\sin x$ | $\sin x$ |
コメント付き数式
$$
\underbrace{E}_{エネルギー} = \underbrace{m}_{質量} \underbrace{c^2}_{光速の二乗}
$$
$$
\overbrace{a^2 + b^2}^{\text{ピタゴラスの定理}} = c^2
$$
トラブルシューティング
よくあるエラーとその解決法
エラー1:数式が表示されない
原因:
- プラットフォームが数式をサポートしていない
- 構文エラーがある
解決法:
- プラットフォームの対応状況を確認
- 構文チェッカーで確認
- 最小限の数式で動作テスト
エラー2:一部の記号が正しく表示されない
原因:
- 未サポートの記号を使用
- パッケージが不足
解決法:
# 代替記号の使用例
≈ の代わりに \approx
≤ の代わりに \leq
≥ の代わりに \geq
∞ の代わりに \infty
エラー3:日本語と数式の混在で表示が崩れる
解決法:
正しい: これは $\alpha = 30°$ の場合です。
間違い: これは$\alpha=30°$の場合です。(スペースなし)
正しい: $\text{速度} = \frac{\text{距離}}{\text{時間}}$
間違い: $速度 = \frac{距離}{時間}$ (日本語が斜体になる)
まとめ
マークダウンでの数式表現について、基本概念から実践的な活用方法まで詳しく解説しました。
重要なポイントをまとめると:
- 基本記法:
$...$
でインライン数式、$$...$$
でブロック数式 - LaTeX記法: 豊富な数学記号と表現力を持つ業界標準
- プラットフォーム対応: Jupyter、Qiita、Notion等で利用可能、GitHubは要工夫
- 実践テクニック: align環境、cases環境、適切な記号選択
- エラー回避: 特殊文字のエスケープ、適切なスペーシング
コメント