数式内のアンダースコアが強調に解釈されないようにしたい
以下のような 1 行内にアンダースコア (_
) による下付き文字のある数式が 2 つある文章を考える。
$\mathbf{e}_{i}$ と $\mathbf{e}_{j}$
$\mathbf{e}{i}$ と $\mathbf{e}{j}$
Qiita Markdown では、1 行に 2 つ以上ある _
は強調表示として認識され、数式が上手く表示することが出来ない。この場合、1 つ目と 4 つ目の $
がリテラルになっているため、この行にもう 1 つ数式を挿入した場合、余計にややこしくなる。
これを回避して数式と強調表示がきちんと理解されるようにする方法を考えたい。
■ 強調表示になる要件
_
による強調表示には、以下の 2 点が要請される。
-
強調される文と
_
が接している(間に半角スペースが入っていない) -
_
による強調表示には分かち書きが必要分かち書き については以下の記事を参照してほしい。
数式内の _
が強調に解釈されないようにするには、複数の数式内で強調表示に要請された記述にならなければ良い。
上で示した数式について、強調表示の要請と照らし合わせると、以下のように見ることが出来る。
強調開きの右側が “}” で分かたれている
↓
$\mathbf{e}_{i}$ と $\mathbf{e}_{j}$
↑
強調閉じの左側が “{” で分かたれている
もちろん、2 つの _
に囲まれた {i}$ と $\mathbf{e}
は _
と接している。
したがって、2 つの強調表示となる要件を満たしているため、{i}$ と $\mathbf{e}
が強調表示されることになっている。
■ 強調表示の回避
強調符号が分かち書きにならなければ良いので、{
~ }
で囲わなければ問題ない。次の場合では、_
は分かち書きとならないため、強調表示に解釈されることはない。
$\newcommand{\e}{\mathbf{e}}$
$\e_{i}$ と $\e_{j}$
$\newcommand{\e}{\mathbf{e}}$
$\e_{i}$ と $\e_{j}$
このようにすることで、強調表示を回避できるものの、執筆中にかなり気にする必要がある。あまりオススメできる回避方法ではない。
強調表示の 1 つ目の要件を回避することを考えると、_
の周囲に半角スペースを設けることで、強調表示に解釈されない。
$\mathbf{e} _ {i}$ と $\mathbf{e} _ {j}$
$\mathbf{e} _ {i}$ と $\mathbf{e} _ {j}$
実際は一方の _
の左右どちらかに半角スペースを挿入すれば十分だが、編集しているとき強調表示になるかどうかを判定することは難しい。そのため、このようにする方が簡便だろう。LaTeX から流用する場合には、_
の周囲に半角スペースを挿入するように置換すれば良い。
あるいは、新たなコマンドを作成することで、_
が本文中に複数回登場することを回避することが出来る。ここでは \sb
コマンドを作成する。(\sb
は LaTeX にある下付きコマンド)
$\newcommand{\sb}[1]{_{#1}}$
$\mathbf{e}\sb{i}$ と $\mathbf{e}\sb{j}$
$\newcommand{\sb}[1]{_{#1}}$
$\mathbf{e}\sb{i}$ と $\mathbf{e}\sb{j}$
これであれば、_
による強調表示の影響を何も考える必要がない。ただし、LaTeX から流用する場合には少し面倒になる。
余談
Markdown パーサによってはきちんと数式と強調が理解される。Qiita Markdown でもきちんと理解される日が来ることを願っている