インライン数式モードでは、/
除算を表すためにリテラルのスラッシュ (つまり ) を使用する傾向があります。ただし、一般的な二項演算子 [ + - \times \div
] とは異なり、/
は通常の数式オブジェクトとして扱われます。これにより、たとえば/
の前に変数があり、 の後に関数がある場合、次の例のように、水平方向の間隔が不一致 (非対称) になりやすくなります。
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\noindent
\(\tan x = \sin x / \cos x\)
\end{document}
出力:
もちろん、\cos x
通常の数学オブジェクトに変換することで水平間隔を修正できます。
\(\tan x = \sin x / {\cos x}\)
出力:
あるいは、 [ ]/
に似た二項演算子として関数を作成することもできます。+ - \times \div
\(\tan x = \sin x \mathbin{/} \cos x\)
出力:
さて、私は次の疑問を抱いています。上記の 2 つの回避策のうちどちらを優先すべきでしょうか? あるいは、もっと良い回避策があるのでしょうか?
答え1
\sin x / {\cos x}
スペースが小さいバージョン、またはegreg が提案しているバージョンの方が確実に好ましいでしょう\sin x / \!\cos x
。TeXbook の 132 ページから:
/
スラッシュは除算を表しますが (数学的には二項演算として適格です)、TeX は を二項演算として扱いません。その理由は、プリンタが伝統的に記号+
、−
、 の周囲に余分なスペースを入れますが*
、 の周囲には入れないからです/
。
1 \mathbin{/} 2
クヌースは続けて、
これは間違っています。TeX では が
/
通常のシンボルであるとみなされます。
そして170ページから:
式 では、スラッシュが通常の記号として扱われ、 のような演算子と通常の記号の間には通常細いスペースが望ましいため、TeX
$n/\log n$
は の前に不要な細いスペースを自動的に挿入します。\log
\log
答え2
あなたの場合、/
二項演算子として以下を使用します\mathbin{/}
:
$a \mathbin{/} b$
省略形として、コマンドをスラッシュと二項演算子として動作するように定義できます。
\mathchardef\mslash="202F
$a \mslash b$
または、シンボルを/
グローバルに変更して、二項演算子として機能するようにすることもできます。
\mathcode`\/="202F
$a / b$
先頭の数字はクラス、0x200 はバイナリ演算子です。16 進数の最後の 2 桁2F
は の文字コードです/
。