数式モードでスラッシュを使用して除算を表す場合

数式モードでスラッシュを使用して除算を表す場合

インライン数式モードでは、/除算を表すためにリテラルのスラッシュ (つまり ) を使用する傾向があります。ただし、一般的な二項演算子 [ + - \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は の文字コードです/

答え3

役に立つと思われる LaTeX パッケージが 3 つあります。xfracナイスフラックそして(おそらく)要因(最後のものは見たことがありませんが、nicefrac のカタログ エントリに参照があります)。xfrac は LaTeX-3 でコード化されたパッケージであることに注意してください。

どれも役に立たない可能性もありますが、数学モードの内部動作をいじる(一般的に少し気分が悪くなる)よりも、実績のあるパッケージを使用する方がよいでしょう。

関連情報