如何定义一个没有分隔符就确定参数的函数?

如何定义一个没有分隔符就确定参数的函数?

问题:

是否可以定义一个\myFunction不需要分隔符的函数,例如,将其自身名称后的第一个字符串视为其参数?例如\myFunctionfoo(或者可能\myFunction foo被解析为\myFunction{foo}

我只熟悉使用\newcommand{}[]{}函数定义的命令,我相信它会自动将参数包装在其中{ };但是,我知道一些处理简单情况的命令的功能(有争议的:D),就像\frac12功能等效的一样\frac{1}{2},所以我希望可以定义一些行为类似的东西。

语境:

我正在使用一个将 KaTeX 与其他编程语言集成的平台,我们正在寻找清理代码的方法,使其更具可读性。目前,我们正在获得很多嵌套调用不同的语言,例如

$\left\{ \frac{\eval{foo}\eval{bar}}{2}\right\}^{\eval{baz}}$

其中\eval{foo/bar/baz}返回由其他编程语言之一生成的一些适合 tex 的字符串。

这些表达是到处这使得花括号的数量显著增加,并使代码越来越难读。注意:这只是一个例子,为了清楚起见,实际情况涉及对的调用要多得多\eval{};基本上所有不是 KaTeX 命令的东西都会以这种方式包装,所以它很快就会变得丑陋。

现在,95%的调用\eval{ }实际上只是调用一个变量或函数(即自然范围有限的东西),所以括号实际上不是必要的,因为参数毫无疑问是下一个字符串(无论\myFunction<string>\myFunction <string>NB 空格在<string>)。

注意:我们还将维护该函数的完全分隔版本,这只是为了明确的调用,主要是对变量名的调用。

答案1

好吧,如果你还可以添加空间,那就很容易了:

\def\myFunction#1 {[something to do]#1}

TeX 期望参数以空格结尾(在本例中)。当然,用法是\myFunction foo bar,参数是foo

相关内容