はじめに
QiitaはMathJaxをサポートするMarkdownの処理系ですが、何点か知っていないと苦労する部分があるので、僕が知っているテクニックを公開しようと思います。
エスケープシンボルを使うとき
TeXで$\{$や$\#$を使う際は\{
や\#
なとすればよいのですが、Qiitaですとこのままでは何も表示されなくなるなどしてしまいます。Qiitaでは、\
がMarkdownを無効にする特殊な文字とされていますので、\\{
や\\#
などバックスラッシュを二つ重ねて使う必要があります。
下付き文字を使うとき
TeXでは下付き文字を使う際にアンダースコアを用いて$x_1$をx_1
などと書きますが、Qiitaで時々これがおかしなことになってしまうことがあります。次のようになります。
$PCH_{{i-b}_j}$を裏のまま計算する(これの結果を${PCH - b_j}_i$とする)
$PCH_{{i-b}_j}$を裏のまま計算する(これの結果を${PCH - b_j}_i$とする)
これが発生する理由は、推測になりますが恐らくMarkdownの強調を表すアンダースコアと数式のパーズが乱れてこのようなことになってしまったものを思われます。これを解決するためには、アンダースコアの前に適当に\
(バックスラッシュ)を置けばよいです。
$PCH_{{i-b}_j}$を裏のまま計算する(これの結果を${PCH - b_j}_i$とする)
$PCH\_{{i-b}\_j}$を裏のまま計算する(これの結果を${PCH - b_j}_i$とする)
番号付き箇条書きの中にディスプレイ数式を埋め込むとき
番号付き箇条書きの中に数式などをそのまま入れると、番号が次のように1へ戻ってしまいます。
- あああああああああああ
- いいいいいいいいいいい
f(x) = x + 2
- ううううううううううう
1. あああああああああああ
2. いいいいいいいいいいい
```math
f(x) = x + 2
```
3. ううううううううううう
これを解決するためには、```
の前にスペースを4つ置く必要があります1。
あああああああああああ
いいいいいいいいいいい
f(x) = x + 2
ううううううううううう
1. あああああああああああ
2. いいいいいいいいいいい
```math
f(x) = x + 2
```
3. ううううううううううう
どうしてこれで上手くいくのか謎です。
番号付き箇条書きの中に表を埋め込むとき
先ほどと同じように、スペースを4つでインデントするとこちらも埋め込むことができます。
あああああああ
マスク 対応するカード $0000 \dots 1001$ $K_1$ $0010 \dots 0010$ $K_2$ いいいいいいい
1. あああああああ
|マスク|対応するカード|
|:----:|:-----------:|
| $0000 \dots 1001$ | $K_1$ |
| $0010 \dots 0010$ | $K_2$ |
2. いいいいいいい
バッククォート(`
)をインラインハイライトするとき
バッククォートをインラインハイライトする目的で```
と書いてもうまくいきません。
このような場合は直接_code_タグを使って次のようにするしかありません。
<code>`</code>
3つのバッククォート(```
)をリスティングに入れるとき
ソースコードの中に```
を入れる際には、これも_pre_タグを使うしかありません。
\newcommand
を使うとき
TeXでは\newcommand
というマクロを使って新しいマクロを定義できます。MathJaxでもサポートされているのですが、\newcommand
はQiitaの自動プレビュー機能と相性が悪く、時々壊れることがあります。これを回避するためには、マクロの定義を\def
コマンドで行うのがよいです。
まとめ
このように、Qiitaは独自(?)のMarkdown拡張でとても便利な反面、ちょっとした落とし穴がいくつかあります。この記事では紹介されていないが、落とし穴を知っているという方は、自分のQiitaでそのことに関する記事を執筆し、この記事にURLをコメントして教えていただければ嬉しいです。
-
スペースが2つではダメですし、ディスプレイ数式やソースコードの前に一行空行が必要です。 ↩