偏导数宏

偏导数宏

我定义了一个用于编写偏导数的宏:

\newcommand{\pder}[2]{\frac{\partial#1}{\partial#2}}

这在插入两个参数时有效。但我想修改它,以便当仅插入单个参数时,它将分子留空,只用该参数填充分母。即

\pder{x}

将产生

\frac{\partial}{\partial x}

我怎样才能实现这个目标?

答案1

最好的方法是使分子变量可选:

\newcommand{\pder}[2][]{\frac{\partial#1}{\partial#2}}

现在\pder[f]{x}\pder{x}如您所愿地工作。

使用语法的解决方案\pder{f}{x}\pder{x}

\makeatletter
\DeclareRobustCommand{\pder}[1]{%
  \@ifnextchar\bgroup{\@pder{#1}}{\@pder{}{#1}}}
\newcommand{\@pder}[2]{\frac{\partial#1}{\partial#2}}
\makeatother

然而,这非常危险,因为后面的开括号\pder{x}会被误认为是第二个参数的开头(空格不受影响)。总之,可选参数路径似乎更好。

如果不打算经常\pder在移动参数中使用,\DeclareRobustCommand可以将其改为\newcommand,但是该命令很脆弱,因此\protect在移动参数中需要在它前面。

答案2

除了遵循 egreg 和 Ant 的出色回答(他们都建议使用\pder宏的定义,其中第一个(分子)参数明确是可选的)之外,您还可以保留现有的宏,但插入一对空括号,例如{},每当您希望分子仅由符号组成时partial

$\pder{f(x,y,z)}{x}$ and $\pder{}{x} f(x,y,z)$

当然,这种方法不如其他方法优雅,但如果您不小心忘记指定命令的一个或另一个参数,您的代码将立即清晰\pder。祝您 TeXing 愉快!

答案3

您可以#1通过为它提供默认值来创建可选参数(在本例中没有任何默认值):

編輯修复原始定义的意外粘贴 - 感谢@Gonzalo 发现这个问题!)

\newcommand{\pder}[2][]{\frac{\partial#1}{\partial#2}}

这允许

$\pder{x}$

$\pder[y]{x}$

(请注意现在可选参数的方括号)。

答案4

使用它作为可选参数:

\documentclass{article}
\newcommand\pder[2][]{\ensuremath{\frac{\partial#1}{\partial#2}}} 
\begin{document}
\pder{x} will produce $\frac{\partial}{\partial x}$

\pder[x]{y} will produce $\frac{\partial x}{\partial y}$

\end{document}

在此处输入图片描述

相关内容