LaTeXにおける\mathrm、\text、\operatornameの違い
\mathrm, \text
code1
$$
\begin{array}{cc}
\mathrm{sin}(\mathrm{mathrm}) & \text{sin}(\text{text})
\end{array} \\[1em]
\text{basic font: abcdefghijklmnopqrstuvwxyz}
$$
デフォルト設定を見ると、\mathrm と \text のレンダリングには違いがないように見える。それは、デフォルトのフォントが \mathrm と全く同じだからだ。\mathrm は正確にローマン体でレンダリングされ、\text は設定されたフォントに従う。だからフォントを変えると、レンダリングの結果は次のようになる。
$$ \begin{array}{cc} \mathrm{sin}(\mathrm{mathrm}) & \textsf{sin}(\textsf{text}) \end{array} \\[1em] \textsf{basic font: abcdefghijklmnopqrstuvwxyz} $$
\operatorname
\mathrm と \text は '文字' をレンダリングするもので、\operatorname はその名の通り、オペレーターとして見えるようにレンダリングするものだ。例として、サイン関数を4つの方法でレンダリングすると次のようになる。
code2
$$ \begin{array}{cccc} a\mathrm{sin}x & a\text{sin}x & a\operatorname{sin}x & a\sin x \\ (\text{mathrm}) & (\text{text}) & (\text{operatorname}) & (\text{sin}) \end{array} $$
\mathrm, \text の場合、asinx か a sin x かの区別がつかないが、\operatorname の場合、sin の部分がオペレーターを意味することがわかりやすい。
\operatorname*
後ろに $\ast$ を追加すると、インラインモードでは差はないが、ディスプレイモードでは添字が上下に移動する。
code3
$$ {\textstyle \operatorname{Proj}_{a}^{b} \quad \operatorname*{Proj}_{a}^{b}}\quad (\text{ inline mode}) $$
$$ \operatorname{Proj}_{a}^{b} \quad \operatorname*{Proj}_{a}^{b}\quad (\text{ display mode}) $$