![改变 \over 的定义方式](https://linux22.com/image/278583/%E6%94%B9%E5%8F%98%20%5Cover%20%E7%9A%84%E5%AE%9A%E4%B9%89%E6%96%B9%E5%BC%8F.png)
我希望能够输入诸如 之类的内容,$1/2$
而不是 ,$\frac{1}{2}$
因为这会使我的代码更具可读性。对于较长的方程式,我更喜欢使用\frac{}{}
,但对于诸如 之类的内容,1/2
我不喜欢它。
从某种意义上来说,这个办法是有效的:
\catcode`/ = 13
\def/{\over}
但我真的不喜欢这种\over
工作方式。是否可以重新定义 ,\over
这样ab\over cd
被解释为a\frac{b}{c}d
? 以及 ,这样{ab}\over{cd}
被解释为\frac{ab}{cd}
?
我知道建议不要使用\over
,但是由于是\frac
基于的定义,所以\over
我认为可能可以基于编写另一个定义,\over
其产生的问题比更少\over
,但保留中缀表示法。
答案1
\over
在我看来,宏——以及类似的 TeX“原始”命令(例如\choose
和——)的问题\atop
是恰恰它的中缀表示法很容易造成严重事故,除非完全遵守其语法。这大概就是\frac
最初创建 LaTeX 宏的原因:充当精心制作的“包装器”宏\over
。
如果你有信心可以处理\over
的中缀语法,则无需创建新的宏。你可以简单地编写如下表达式
$a{{b}\over c}d$
和
${{ab}\over cd}$
(如果分子项仅包含简单材料,则可以省略分子项周围的额外分组,即没有可能影响分母项和分子的命令。)请注意,它是不够使其/
活跃并像 一样起作用\over
。必须适当地将分子和分母项括起来,以便\over
—— 或任何其他像 一样起作用的命令\over
—— “知道” 要对什么采取行动。
至少对我来说,\over
基于的表达式看上去并不比$a\frac{b}{c}d$
和更具可读性$\frac{ab}{cd}$
。
答案2
\documentclass{article}
\def\Over #1/#2{\frac {#1}{#2}}
% usage \Over stuff/{braced or single}
\begingroup
\lccode`\~`@
\lowercase
{\endgroup\let~\Over}
\mathcode`@ "8000
\begin{document}\thispagestyle{empty}
\[ @3/2a+@5/3b \]
\[ @314/2a+@533/3b \]
\end{document}