在数学模式下使用斜线表示除法

在数学模式下使用斜线表示除法

在内联数学模式中,我倾向于使用文字斜杠(即/)来表示除法。但与常见的二元运算符 [ + - \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 编码的包。

这些可能都无济于事,但我宁愿使用久经考验的软件包,也不愿摆弄数学模式的内部运作(这通常会让我感到有点不舒服)。

相关内容