这是一个 MnWE:
\documentclass{minimal}
\usepackage{amsmath}
\newcommand{\funk}[2]{#1}{-#2}
\begin{document}
$\funk{x}{2}$
\end{document}
它无法编译,并给出错误消息:
您不能在水平模式下使用“宏参数字符 #”。 \newcommand{\funk}[2]{#1}{-#
命令出了什么问题?
答案1
\newcommand*{<cmd>}[<args>][<default>]{<stuff>}
其中*
是可选的(表示结果\def
初始化是否为\long
),<cmd>
是不存在的控制序列,<args>
(也是可选的) 表示 传递的参数数量<cmd>
,<default>
如果未指定(当<args>
> 0 时)则为可选参数的默认值,<stuff>
是 传递参数后的 的扩展(或替换文本)<cmd>
。 每个参数(最多 9 个)被 替换为#<num>
第 一个<num>
参数(#1
第一个参数,#2
第二个参数,依此类推)。
在您的设置中
\newcommand{\funk}[2]{#1}{-#2}
\funk
接受2
参数,两个参数都是必需的,并且替换文本只是第一个参数#1
(实际上吞噬了第二个参数)。
{-#2}
不构成控制序列创建的一部分,因此按原样扩展,留-#2
在输入流中(在前导码中),这是不允许的,因为#
具有特殊含义 - 它是一个宏参数字符。
你可能感兴趣
\newcommand{\funk}[2]{#1-#2}