如何定义命令以包含括号?

如何定义命令以包含括号?

这是一个懒惰的问题,但我想定义一个像这样的命令

\newcommand{\abs}[1]{\ensuremath{\left|{#1}\right|}}

但这不会自动显示 { },因此我可以像 \mathbb{} 一样包含参数。知道如何将它们包含在定义中吗?似乎无法弄清楚。

编辑:我觉得我没能完全表达我的观点,所以让我重申一下:当我在 Overleaf 中输入“\mat”时,它会立即建议“\matbb{}”并自动完成用花括号,而当我输入“\a”时,它会自动完成为“\abs”没有括号。因此每次插入参数时我都必须键入括号。有没有办法定义我的命令,以便它确实使用括号进行粘贴?

答案1

我与 Overleaf 的支持人员进行了交谈,他们这样回答我:

对于用户提供的命令,自动完成功能会查看文档中的用法,并且可以将新命令的定义作为“首次使用”,而不识别参数的需要。

因此,一种方法是将您的定义移到您直接输入的单独文件中 - 第一次使用应该是带有参数的。

在这个示例项目中,我定义了两个命令,一个在文件中main.tex,一个在单独的commands.tex文件中:https://www.overleaf.com/read/dnqcccxkjyjz。主项目中定义的命令将在自动完成中出现,没有括号,但第二个命令只会显示我在 中使用的方式main.tex

虽然我认为没有必要这样做,因为第一次使用括号后,它会自动再次使用括号自动完成(实际上,它建议同时使用两种自动完成)。谜题解开了!

答案2

这不是 Tex/LaTeX 的问题,而是 Tex 编辑器(即 Overleaf)的自动完成功能的问题。例如,如果您使用 TexStudio 等编辑器,它将使用括号完成(见图)。

经历文档关于指定命令,我还没有看到任何可以触发命令的内容。也许你可以写信给他们并要求提供此功能。

在此处输入图片描述

相关内容