我正在编写一个推导规则,我想将一个长公式分成多行。我使用包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 中使用,请参阅为什么\[ … \]
优于$$ … $$
?。