为什么我会收到“垂直模式下的宏参数#”错误?

为什么我会收到“垂直模式下的宏参数#”错误?

我试图new command按以下方式定义:

\newcommand{\textbelow}[2]{\underbrace{#1}_\substack{#2}}

看起来下划线字符_是造成问题的原因。如果我删除它,就不会出现任何错误,但这不是我想要的。

语法是正确的,因为newcommand其外部运行良好。

\[\underbrace{Look Down}_{\substack{hello \\ world}}\]

为什么我不能用这个命令创建新命令?如果不能_在里面写下划线newcommand,有什么解决方法吗?

谢谢您的帮助。


如果您需要的话,这里有我正在尝试做的完整示例。

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}

\newcommand{\textbelow}[2]{\underbrace{#1}_\substack{#2}}
\newcommand{\test}[2]{\underbrace{#1}\substack{#2}}

\begin{document}

This \(\underbrace{Look Down}_{\substack{hello \\ world}}\) works fine.

But the newcommand does not:
    \[ \textbelow{Look Down}{hello \\ world} \]

\end{document}

编辑:

@egreg 的解决方案对我不起作用。这是我在 TeXstudio 中收到的错误的屏幕截图。

错误

答案1

我得到的错误是

! Missing { inserted.
<to be read again> 
                   \vcenter 
l.12     \[ \textbelow{Look Down}{hello \\ world}
                                                  \]
? 
! Missing } inserted.
<inserted text> 
                }
l.12 ...[ \textbelow{Look Down}{hello \\ world} \]

这显然是由于 周围缺少括号造成的\substack{...}

确实,如果我添加括号,示例代码就可以毫无问题地运行。

\documentclass{article}
\usepackage{amsmath}

\newcommand{\textbelow}[2]{\underbrace{#1}_{\substack{#2}}}

\begin{document}

This \(\underbrace{Look Down}_{\substack{hello \\ world}}\) works fine.

But the newcommand does not:
    \[ \textbelow{Look Down}{hello \\ world} \]

\end{document}

在此处输入图片描述

然而,这似乎不利于排版文本

相关内容