Qiitaでの様々な数式の書き方 ～ TeX記法を使ったサンプルコード付き

##:aries: この記事の目的
この記事では、**TeX記法**に従い、Qiita記事に数式を記載する方法を、実際のコードを紹介しながら学びます。

##:aries: TeXとは

TeXは「テフ」あるいは「テック」と発音します。
ドナルド・クヌース氏(Donald E. Knuth)らによって開発され、現在は様々なOSや、TeXの応用版である学術論文記述のためのソフトウェアLaTeX(ラテフ、ラテック)などに幅広く適応した、組版処理システムです。

Qiitaでは、TeX記法を使用することで記事に数式を自由に記載することができます。
TeXについては以下のサイトをご参考にお願い致します。

:paperclip: TeX (Wikipedia)
https://ja.wikipedia.org/wiki/TeX

##:aries: 数式と実践サンプルコード(基本編)

:pushpin: **前提知識**
**①**Qiitaで数式を書く際には、以下のように「\`\`\`math」と「\`\`\`」に囲まれた部分に記載を行います。[ ` ]はバッククォートです。

>\`\`\`math

>　...(ここに数式を記載)

>\`\`\`

**②**文中に数式を記載することもできます。この場合は、数式の前後を[ $ ]記号で囲みます。

>例えば\$(数式)\$のように記載できます。

例えば$f(x)=x^2$のように記載できます。

**③**以降のサンプルコードに出てくる[ \\ ]記号はバックスラッシュですが、Windowsの場合は半角の[￥]マークを使用します(←は表示の事情で全角の￥マークを記載しています)。


###(1)分数

分数の記載では、**\frac**を使用します。
` \frac{分子}{分母} `のように記載します。


```ruby:コード例
\frac{n}{m}
```

≪表示例≫

```math
\frac{n}{m}
```

###(2)べき乗

べき乗の記載では、**^{ }**を使用します。
` x^{べき乗数} `のように記載します。


```ruby:コード例
x^{2}
e^{a+b}
```

≪表示例≫

```math
x^{2}\\
e^{a+b}

```

###(3)根号

根号の記載では、**\sqrt{}**を使用します。
` \sqrt{元の数} `のように記載します。


```ruby:コード例
\sqrt{x}
```

≪表示例≫

```math
\sqrt{x}
```

###(4)三角関数

$sin, cos, tan$などの三角関数の記載では、**\sin \cos \tan**を使用します。
` \sin 角度 `のように記載します。

```ruby:コード例
\sin x
\cos(y)
\tan(a+b)
```

≪表示例≫

```math
\sin x\\
\cos(y)\\
\tan(a+b)
```

###(5)対数

対数の記載では、**\log**または**\ln**を使用します。
` \log_底 真数 `のように記載します。
$ln$は自然対数です。

```ruby:コード例
\lob_a b
\ln x
```

≪表示例≫

```math
\log_a b\\
\ln x
```

###(6)ギリシャ文字

各ギリシャ文字にコードが割り当てられています(以下は小文字のみ記載)。

```ruby:コード例
\alpha \beta \gamma \delta
\varepsilon \zeta \eta \theta
\iota \kappa \lambda \mu
\nu \xi o \pi
\rho \sigma \tau \upsilon
\phi \chi \psi \omega
```

≪表示例≫

```math
\alpha(アルファ) \quad \beta(ベータ) \quad \gamma(ガンマ) \quad \delta(デルタ)\\
\varepsilon(イプシロン) \quad \zeta(ゼータ) \quad \eta(イータ) \quad \theta(シータ)\\
\iota(イオタ) \quad \kappa(カッパ) \quad \lambda(ラムダ) \quad \mu(ミュー)\\
\nu(ニュー) \quad \xi(グザイ) \quad o(オー) \quad \pi(パイ)\\
\rho(ロー) \quad \sigma(シグマ) \quad \tau(タウ) \quad \upsilon(ウプシロン、ユプシロン)\\
\phi(ファイ) \quad \chi(カイ) \quad \psi(プサイ) \quad \omega(オメガ)

```

###(7)添え字(下付き文字)

添え字(下付き文字)の記載では、アンダースコア[ **_** ]を使用します。
` a_{添え字} `のように記載します。

```ruby:コード例
a_{ij}
```

≪表示例≫

```math
a_{ij}

```

###(8)行列

行列の記載では、**\begin{pmatrix}** 及び **\end{pmatrix}**を使用します。
` \begin{pmatrix} a & b \\ c & d \end{pmatrix} `のように記載します。
なお、バックスラッシュが2つ重なると「改行する」という意味になります。

```ruby:コード例
\begin{pmatrix} a & b \\ c & d \end{pmatrix}
\begin{bmatrix} e & f \\ g & h \end{bmatrix}
```

≪表示例≫

```math
\begin{pmatrix} a & b \\ c & d \end{pmatrix}\\
\begin{bmatrix} e & f \\ g & h \end{bmatrix}
```

###(9)シグマ(和記号)

シグマ(和記号)の記載では、**\sum**を使用します。
` \sum_{始点}^{終点}式 `のように記載します。

```ruby:コード例
\sum_{i=1}^{10}x_i
```

≪表示例≫

```math
\sum_{i=1}^{10}x_i
```

###(10)いろいろな括弧(かっこ)

括弧には様々な大きさがあります。
左括弧、右括弧それぞれ個別に定義します。

```ruby:コード例

# 左括弧
\Bigg( \bigg( \Big( \big(

# 右括弧
\big) \Big) \bigg) \Bigg)

```

≪表示例≫

左括弧

```math
\Bigg( \quad \bigg( \quad \Big( \quad \big(
```

右括弧

```math
\big) \quad \Big) \quad \bigg) \quad \Bigg)
```

###(11)大きさ可変の括弧(かっこ)

括弧内の式に応じて大きさが自動的に伸びる括弧です。
開き括弧と閉じ括弧が対になっている必要があります。
波括弧{}のみ、その前部に"\"記号が付きます。

```ruby:コード例

# 左括弧
\left\{ \left[

# 右括弧
\right\} \right]

```

≪表示例≫

```math
\left\{ \begin{pmatrix}0 \\ 1\end{pmatrix} \right\} \\
\left[ \begin{pmatrix}0 \\ 1 \\ 2\end{pmatrix} \right]

```


###その他の記法

####改行

連続したバックスラッシュ2文字(￥マーク2文字)で改行することができます。
好きな位置で改行出来ます。
` \\ `のように記載します。

```ruby:コード例
a\\b
```

≪表示例≫

```math
a\\b
```

####"="記号で揃える

複数行の式を"="記号を基準に揃えることができます。
この場合、式全体の前後を**\begin{align}**と**\end{align}**でくくります。
また、"**=**"を"**&=**"に書き換えます。

```ruby:コード例
\begin{align}
y&=(x+1)^2 -4x\\
&=x^2+2x+1-4x\\
&=x^2-2x+1\\
&=(x-1)^2
\end{align}
```

≪表示例≫

```math
\begin{align}
y&=(x+1)^2 -4x\\
&=x^2+2x+1-4x\\
&=x^2-2x+1\\
&=(x-1)^2
\end{align}

```

####太文字、色付き文字

```ruby:コード例
\mathbf{x}\\
\textbf{x}\\
\color{red}{x}

```

≪表示例≫

```math
\mathbf{x}\\
\textbf{x}\\
\color{red}{x}

```



##:aries: 数式と実践サンプルコード(応用編)

ここでは基本を応用し、いろいろな複雑な数式を書いてみたいと思います。
もし参考になりましたら、ソースをコピーし転用して頂いても構いません。

###(1)ピタゴラスの定理(三平方の定理)

```math
a^2 + b^2 = c^2
```

```ruby:コード
a^2 + b^2 = c^2
```

###(2)二重根号

```math
\sqrt{1+\sqrt{2}}
```

```ruby:コード
\sqrt{1+\sqrt{2}}
```

###(3)2次方程式

```math
f(x)=x^2-\frac{2}{3}x+10
```

```ruby:コード
f(x)=x^2-\frac{2}{3}x+10
```

###(4)円、楕円の公式

```math
x^2 + y^2 = 1\\
\frac{x^2}{a^2}+\frac{y^2}{b^2}=1
```

```ruby:コード
x^2 + y^2 = 1
\frac{x^2}{a^2}+\frac{y^2}{b^2}=1
```


###(5)2次方程式の解の公式

```math
x = \frac{-b±\sqrt{b^2-4ac}}{2a}
```

```ruby:コード
x = \frac{-b±\sqrt{b^2-4ac}}{2a}
```

###(6)加法定理

```math
\sin(\alpha±\beta) = \sin \alpha \cos \beta ± \cos \alpha \sin \beta\\
\cos(\alpha̠∓\beta) = \cos \alpha \cos \beta ∓ \sin \alpha \sin \beta\\
\tan(\alpha±\beta) = \frac{\tan \alpha ± \tan \beta}{1 ∓ \tan \alpha \tan \beta}
```

```ruby:コード
\sin(\alpha±\beta) = \sin \alpha \cos \beta ± \cos \alpha \sin \beta
\cos(\alpha̠∓\beta) = \cos \alpha \cos \beta ∓ \sin \alpha \sin \beta
\tan(\alpha±\beta) = \frac{\tan \alpha ± \tan \beta}{1 ∓ \tan \alpha \tan \beta}
```

###(7)オイラーの公式

```math
e^{i\theta} = \cos \theta + i \sin \theta
```

```ruby:コード
e^{i\theta} = \cos \theta + i \sin \theta
```

###(8)ド・モアブルの定理

```math
(\cos \theta + i \sin \theta)^n = \cos n\theta + i \sin n\theta
```

```ruby:コード
(\cos \theta + i \sin \theta)^n = \cos n\theta + i \sin n\theta
```


###(9)微分

```math
\frac{df(x)}{dx}
```

```ruby:コード
\frac{df(x)}{dx}
```

###(10)極限とネイピア数

```math
e = \lim_{n \to \infty} \Big(1 + \frac{1}{n} \Big)^n
```

```ruby:コード
e = \lim_{n \to \infty} \Big(1 + \frac{1}{n} \Big)^n
```

###(11)シュレディンガー方程式

```math
i\hbar\frac{\partial \psi}{\partial t} = -\frac{\hbar^2}{2m}\frac{\partial^2 \psi}{\partial x^2}+V(x)\psi
```

```ruby:コード
i\hbar\frac{\partial \psi}{\partial t} = -\frac{\hbar^2}{2m}\frac{\partial^2 \psi}{\partial x^2}+V(x)\psi
```


TeXはこれ以外にもたくさんの記載方法がありますので、ぜひ他のサイトや情報も併せてご参考にお願い致します。


##:aries: 関連情報

:paperclip: TeX (Wikipedia)
https://ja.wikipedia.org/wiki/TeX


##:aries: ご意見など

ご意見、間違い訂正などございましたらお寄せ下さい。