\usepackage{amsmath,amssymb,amsopn}% read amsldoc.pdf for more details
%\genfrac{left-delim}{right-delim}{thickness}{mathstyle}{numerator}{denominator}
%\newcommand{\frac}[2]{\genfrac{}{}{}{}{#1}{#2}}
%\newcommand{\tfrac}[2]{\genfrac{}{}{}{1}{#1}{#2}}
%\newcommand{\binom}[2]{\genfrac{(}{)}{0pt}{}{#1}{#2}}
\newcommand[1]{\over}[1]{\genfrac{}{}{}{}{#1}{#2}}
\newcommand[1]{\tover}[1]{\genfrac{}{}{}{1}{#1}{#2}}
\newcommand[1]{\binomial}[1]{\genfrac{(}{)}{0pt}{}{#1}{#2}}
如何在命令前添加参数?
最好通过修复上述示例的最后三行来回答问题。
编辑:我需要这样做的原因是为了减少记笔记所需的时间,以便快速记笔记。例如
%macros to make quick note taking easier all escapes try to keep at 3 chars or less
\def\t{\text }
\def\o{\over }
\def\to{\tover }
\def\part{\partial }
\def\({\left( }
\def\){\right) }
\def\[{\left[ }
\def\]{\right] }
\def\l{\left. }
\def\r{\right. }
通过在上面的原始问题中添加这项能力,这意味着我可以打字
${\part f \o \part x}$
而不是
$\tfrac{\partial f}{\partial x}$
答案1
据我所知,你不能。TeX 的做法\over
是作为原始的,而不是宏。你可以考虑一些特殊的环境,将“宏”作为分隔参数来查找。
答案2
如果您只需要将其用于基元,那么您的定义就可以了(至少在我测试的最小示例中是这样)。但是,请注意,您正在重新定义许多核心 LaTeX 宏:\part
、、和。您可以使用大写名称、等来避免其中一些\(
。\[
\to
\PART
\TO
另一个选择是查看 nath 包,它允许自动缩放分隔符(无需定义\(' and
[`)。它还定义了许多其他快捷方式,以便于数学排版。请注意,nath 与 amsmath 冲突,因此您只能使用其中之一。
答案3
这并不能直接回答你的问题,但是对于排版分数来说这个技巧怎么样:
\mathcode`/"8000
{\catcode`/13 \global\let/\over}
现在你想要一个分数?没问题,\[ -{3+x/x^2} \]
你得到的就是你期望的分数。
[奇怪,我以为我已经编辑了我的答案。]如果你想要一个\binomial
有效的,你可以简单地使用
\newcommand*\binomial{\atopwithdelims()}
这正是\choose
定义的。
我不确定你到底想用它做什么,\over
因为它已经按照你想要的方式工作了。没有简单的方法可以做到这一点,\tover
因为\textstyle
必须在分数本身之前。