はじめに
Qiita では数式を LaTeX のようなコマンドで書けますが、利用する環境によって一部が対応していない場合があります。
特に「空白を調整するコマンド」は記事の見やすさに直結するため、思った通りに動かないと少し残念に感じることもあるでしょう。
そこで本記事では、2025年9月7日時点での検証結果として、Qiita と GitHub を例に空白コマンドの挙動をまとめました。
また、他の Markdown 環境でも試せるようにコピペ用のサンプルコードも用意しているので、ご自身の環境で動作を確認してみてください。
LaTeX の空白コマンド
ここでは $...$
で囲んだインライン数式の中で、代表的な空白コマンドが使えるかを確認します。
コマンド | 記述例 (コピー用) | Qiita 上での表示結果 | 説明 |
---|---|---|---|
\, |
$a\,b$ |
$a,b$ | 細い空白(約 1/6em) |
\: |
$a\:b$ |
$a:b$ | 中くらいの空白 |
\; |
$a\;b$ |
$a;b$ | やや広い空白 |
\! |
$a\!b$ |
$a!b$ | 空白を少し詰める |
\thinspace |
$a\thinspace b$ |
$a\thinspace b$ |
\, と同じ細い空白 |
\negthinspace |
$a\negthinspace b$ |
$a\negthinspace b$ |
\! と同じ詰め空白 |
\enspace |
$a\enspace b$ |
$a\enspace b$ | 約 0.5em の空白 |
\quad |
$a\quad b$ |
$a\quad b$ | 1em の空白 |
\qquad |
$a\qquad b$ |
$a\qquad b$ | 2em の空白 |
~ |
$a~b$ |
$a~b$ | 改行されない空白 |
\space |
$a\space b$ |
$a\space b$ | 明示的な空白 |
\phantom{…} |
$a\phantom{xyz}b$ |
$a\phantom{xyz}b$ | 文字の幅だけ透明に確保 |
\hphantom{…} |
$a\hphantom{xyz}b$ |
$a\hphantom{xyz}b$ | 横幅だけ透明に確保 |
\kern <dimen> |
$a\kern 1em b$ |
$a\kern 1em b$ | 任意の長さを挿入(em, ptなど) |
\mkern <mu> |
$a\mkern 18mu b$ |
$a\mkern 18mu b$ | 数式専用の空白(mu 単位) |
\hspace{<len>} |
$a\hspace{1em}b$ |
$a\hspace{1em}b$ | 横方向の空白(LaTeX由来) |
\hskip <len> |
$a\hskip 10pt b$ |
$a\hskip 10pt b$ | TeX 的な空白指定 |
\mskip <mu> |
$a\mskip 10mu b$ |
$a\mskip 10mu b$ | 数式専用の空白(mu 単位) |
コピペで確認用
| コマンド | 記述例 (コピー用) | Qiita 上での表示結果 | 説明 |
| ---------------- | -------------------- | -------------------- | ------------------ |
| `\,` | `$a\,b$` | $a\,b$ | 細い空白(約 1/6em) |
| `\:` | `$a\:b$` | $a\:b$ | 中くらいの空白 |
| `\;` | `$a\;b$` | $a\;b$ | やや広い空白 |
| `\!` | `$a\!b$` | $a\!b$ | 空白を少し詰める |
| `\thinspace` | `$a\thinspace b$` | $a\thinspace b$ | `\,` と同じ細い空白 |
| `\negthinspace` | `$a\negthinspace b$` | $a\negthinspace b$ | `\!` と同じ詰め空白 |
| `\enspace` | `$a\enspace b$` | $a\enspace b$ | 約 0.5em の空白 |
| `\quad` | `$a\quad b$` | $a\quad b$ | 1em の空白 |
| `\qquad` | `$a\qquad b$` | $a\qquad b$ | 2em の空白 |
| `~` | `$a~b$` | $a\~b$ | 改行されない空白 |
| `\space` | `$a\space b$` | $a\space b$ | 明示的な空白 |
| `\phantom{…}` | `$a\phantom{xyz}b$` | $a\phantom{xyz}b$ | 文字の幅だけ透明に確保 |
| `\hphantom{…}` | `$a\hphantom{xyz}b$` | $a\hphantom{xyz}b$ | 横幅だけ透明に確保 |
| `\kern <dimen>` | `$a\kern 1em b$` | $a\kern 1em b$ | 任意の長さを挿入(em, ptなど) |
| `\mkern <mu>` | `$a\mkern 18mu b$` | $a\mkern 18mu b$ | 数式専用の空白(mu 単位) |
| `\hspace{<len>}` | `$a\hspace{1em}b$` | $a\hspace{1em}b$ | 横方向の空白(LaTeX由来) |
| `\hskip <len>` | `$a\hskip 10pt b$` | $a\hskip 10pt b$ | TeX 的な空白指定 |
| `\mskip <mu>` | `$a\mskip 10mu b$` | $a\mskip 10mu b$ | 数式専用の空白(mu 単位) |
筆者の環境での表示結果(Qiita、GitHub)
Qiita
一部のコマンドが動いていないことがわかります。
例えば $a\,b$
のようなケースは、後述の エスケープの活用 で回避できます。
GitHub
GitHub では \phantom
と \hphantom
が表示されていません。こちらの原因については筆者には明確な理由はわかりませんが、環境側の制限によるものかもしれません。
補足
エスケープの活用
qiita-discussionsにあるように、Qiita の Markdown 処理で \
が1つだと消えてしまう場合があり、\\
と書くと正しく解釈されることがあります。
- 例(小さい空白スペースを入れるコマンド)
エスケープなし:$a\,b$
→ $a,b$
エスケープあり:$a\\,b$
→ $a\,b$
MathJaxブロックの活用
Qiita の数式レンダラーは KaTeX ベースですが、インラインではなく ```math
ブロックを使うとMathJaxで解釈されるため、動作するコマンドが増える場合があります。
以下は```math
で先の例を試した結果です。
a\,b
a\,b
a\:b
a\:b
a\;b
a\;b
a\!b
a\!b
a\thinspace b
a\thinspace b
a\negthinspace b
a\negthinspace b
a\enspace b
a\enspace b
a\quad b
a\quad b
a\qquad b
a\qquad b
a~b
a~b
a\space b
a\space b
a\phantom{xyz}b
a\phantom{xyz}b
a\hphantom{xyz}b
a\hphantom{xyz}b
a\kern 1em b
a\kern 1em b
a\mkern 18mu b
a\mkern 18mu b
a\hspace{1em}b
a\hspace{1em}b
a\hskip 10pt b
a\hskip 10pt b
a\mskip 10mu b
a\mskip 10mu b
コピペで確認用
* `a\,b`
```math
a\,b
```
* `a\:b`
```math
a\:b
```
* `a\;b`
```math
a\;b
```
* `a\!b`
```math
a\!b
```
* `a\thinspace b`
```math
a\thinspace b
```
* `a\negthinspace b`
```math
a\negthinspace b
```
* `a\enspace b`
```math
a\enspace b
```
* `a\quad b`
```math
a\quad b
```
* `a\qquad b`
```math
a\qquad b
```
* `a~b`
```math
a~b
```
* `a\space b`
```math
a\space b
```
* `a\phantom{xyz}b`
```math
a\phantom{xyz}b
```
* `a\hphantom{xyz}b`
```math
a\hphantom{xyz}b
```
* `a\kern 1em b`
```math
a\kern 1em b
```
* `a\mkern 18mu b`
```math
a\mkern 18mu b
```
* `a\hspace{1em}b`
```math
a\hspace{1em}b
```
* `a\hskip 10pt b`
```math
a\hskip 10pt b
```
* `a\mskip 10mu b`
```math
a\mskip 10mu b
```
筆者の環境での表示結果(Qiita、GitHub)
Qiita
全てのコマンドが正常に動いていますね。
GitHub
GitHub では \phantom
と \hphantom
が表示されていません。やはり$...$
の時にも表示されていなかったので、環境側の制限があるのかもしれません。
まとめ
今回紹介したように、LaTeX の空白コマンドは Qiita・GitHub など 環境ごとに挙動が異なることがあります。
例えば、Qiita ではエスケープを追加すれば動く場合もありますが、環境によってはそもそもコマンド自体が禁止されている場合もあります。
そのため、実際に数式を書くときは、必ず自分の利用している環境でプレビューして確認するのが一番確実だと思います。