使用对齐的内部套圈

使用对齐的内部套圈

我正在编写一个推导规则,我想将一个长公式分成多行。我使用包inferrule中的宏mathpartir来编写推导规则。我的公式如下

\documentclass{article}
\usepackage{mathpartir}
\begin{document}
$$
    \inferrule*{
        \psi(aaa)
    }{
        \psi(xxx\land yyy\land zzz)
    }
$$
\end{document}

但真正的公式更长,所以我想将其分成多行,并且我正在使用aligned环境。

\documentclass{article}
\usepackage{mathpartir}
\begin{document}
$$
    \inferrule*{
        \psi(aaa)
    }{
        \psi(\begin{aligned}xxx\\\land yyy\\\land zzz\end{aligned})
    }
$$
\end{document}

然后编译失败。我猜问题是inferrule重新定义的\\soaligned确实有效。我该如何让它工作?

答案1

我以前从未听说过mathpartir,所以我不能确切地说出这里发生了什么。我唯一确定的是,它与(这实际上是我的第一个猜测)无关amsmath,因为代码片段

% FAILS TOO
\newenvironment{foo}{}{}
\[
\inferrule*{
        \psi(aaa)
    }{
    \psi(\begin{foo}xxx\\\land yyy\\\land zzz\end{foo})
}
\]

失败。我猜这与它如何查找和处理参数有关\inferrule。现在我没时间仔细研究它的代码,但在许多类似情况下,它有助于通过将其括在括号中来“保护”内部环境。在你的情况下,代码

\documentclass{article}
\usepackage{amsmath,mathpartir}
\begin{document}
\[
    \inferrule*{
        \psi(aaa)
    }{
        \psi({\begin{aligned}xxx\\\land yyy\\\land zzz\end{aligned}})
    }
\]
\end{document}

运行没有问题。请注意,$$应避免在 LaTeX 中使用,请参阅为什么\[ … \]优于$$ … $$

相关内容