内側揃えインフェルルの使用

内側揃えインフェルルの使用

私は演繹ルールを書いていますが、長い式を複数行に分割したいと考えています。私はパッケージ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}

するとコンパイルが失敗します。問題はinferruleredefined が機能すること\\だと思いますaligned。どうすれば機能するのでしょうか?

答え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$$では使用しないでください。がなぜ\[ … \]好ましいのでしょうか$$ … $$?

関連情報