關於在數學模式下使用斜線表示除法

關於在數學模式下使用斜線表示除法

在線上數學模式中,我傾向於使用文字斜線(即/)來表示除法。但與常見的二元運算子 [ + - \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\)

輸出:

現在,我很好奇:應該首選上述兩種解決方法中的哪一個?或者還有更好的嗎?

答案1

\sin x / {\cos x}您絕對應該更喜歡帶有小空間的版本,或者\sin x / \!\cos x如egreg 所建議的那樣。來自 TeXbook,第 132 頁:

TeX 不將其/視為二元運算,儘管斜槓代表除法(從數學角度看,它符合二元運算的資格)。原因是印表機傳統上會在符號+和周圍放置額外的空間*,但不會在周圍放置額外的空間/

高德納 (Knuth) 繼續說道,解釋說這1 \mathbin{/} 2將會出現

一半

這是錯誤的;所以 TeX 認為/是一個普通符號。

從第 170 頁開始:

在公式 中$n/\log n$,TeX 會自動在 之前插入不需要的空格\log,因為斜線被視為普通符號,並且普通符號和運算符(如 )之間通常需要空格\log

答案2

在您的情況下,您使用/二元運算子\mathbin{/}::

$a \mathbin{/} b$

作為縮寫,可以將指令定義為充當二元運算子的斜線:

\mathchardef\mslash="202F
$a \mslash b$

/或者可以全域更改符號以充當二元運算符:

\mathcode`\/="202F
$a / b$

起始編號是類,0x200 是二元運算子。十六進制數的最後兩位2F是 的字元代碼/

答案3

三個 LaTeX 包似乎有幫助:三維壓裂,尼斯壓裂和(可能)因素(最後我從未看過;在 Nicefrac 的目錄條目中有對它的引用)。請注意,xfrac 是一個 LaTeX-3 編碼的套件。

這些可能都沒有幫助,但我寧願使用經過嘗試和測試的軟體包,也不願擺弄數學模式的內部運作(這通常讓我感覺有點不舒服)。

相關內容