
私は演繹ルールを書いていますが、長い式を複数行に分割したいと考えています。私はパッケージ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
redefined が機能すること\\
だと思います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$$
では使用しないでください。がなぜ\[ … \]
好ましいのでしょうか$$ … $$
?。