我试图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}
然而,这似乎不利于排版文本。