LoginSignup
51
41

More than 5 years have passed since last update.

Qiitaで数式やソースコードを使うときの注意

Last updated at Posted at 2016-01-01

はじめに

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へ戻ってしまいます。

  1. あああああああああああ
  2. いいいいいいいいいいい
f(x) = x + 2
  1. ううううううううううう

1. あああああああああああ
2. いいいいいいいいいいい
 
```math 
f(x) = x + 2
```
3. ううううううううううう

これを解決するためには、```の前にスペースを4つ置く必要があります1

  1. あああああああああああ
  2. いいいいいいいいいいい

    f(x) = x + 2
    
  3. ううううううううううう

1. あああああああああああ
2. いいいいいいいいいいい

     ```math 
     f(x) = x + 2
     ```
3. ううううううううううう

どうしてこれで上手くいくのか謎です。

番号付き箇条書きの中に表を埋め込むとき

先ほどと同じように、スペースを4つでインデントするとこちらも埋め込むことができます。

  1. あああああああ

    マスク 対応するカード
    $0000 \dots 1001$ $K_1$
    $0010 \dots 0010$ $K_2$
  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をコメントして教えていただければ嬉しいです。


  1. スペースが2つではダメですし、ディスプレイ数式やソースコードの前に一行空行が必要です。 

51
41
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
51
41