\underset 或 \substack 宏使用 \text{...} 不能与 \\ 一起使用来创建多行

\underset 或 \substack 宏使用 \text{...} 不能与 \\ 一起使用来创建多行

我有以下代码:

$$\begin{aligned}
\cal A \models (\exists x \psi)_{\bar s/\bar x}[\alpha] & \usett{\iff}{def. of \\ substitution}  
\end{aligned}$$

其中\usett(“underset” 的缩写,最后一个“t”代表“text”)

\newcommand{\usett}[2]{\mathop{#1}\limits_{\mathclap{\substack{\text{#2}}}}}

上述代码不起作用(特别是\\里面\text),但以下代码起作用:

$$\begin{aligned}
\cal A \models (\exists x \psi)_{\bar s/\bar x}[\alpha] & \mathop{\iff}\limits_{\mathclap{\substack{\text{def. of}\\ \text{substitution}}}}
\end{aligned}$$

如果我可以将\text{...}分散到以 分隔的字符串上\\,那么这个问题就可以解决。这可能吗?如果不行,还有其他解决方案吗?


PS:是否可以编写\underset具有与相同的多行功能\substack?我写了这个可怕的东西:

% uset multiple lines, like substack, hence the plural 's' ending
\newcommand{\usets}[2]{\mathop{#1}\limits_{\mathclap{\substack{#2}}}}

这似乎确实有效,但当然我很高兴看到其他解决方案。

答案1

我刚刚遇到@egreg 的回答等式内的文本以 \\ 表示,这正是我想要的。

我不想删除我的问题,因为它可能会出现在更多搜索查询中,所以我决定以 CW 的身份回答我的问题。

相关内容