Usando inferrule interno alinhado

Usando inferrule interno alinhado

Estou escrevendo uma regra de dedução e quero dividir uma fórmula longa em várias linhas. Estou usando inferrulea macro do mathpartirpacote para escrever a regra de dedução. E minha fórmula é como

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

Mas a fórmula real é mais longa, então quero dividi-la em várias linhas e estou usando alignedo ambiente.

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

Então a compilação falha. Acho que o problema é que inferruleredefinido \\também alignedfunciona. Como posso fazer isso funcionar?

Responder1

Nunca ouvi falar disso mathpartirantes, então não posso dizer exatamente o que está acontecendo aqui. A única coisa que tenho certeza é que não tem nada a ver com amsmath(o que foi meu primeiro palpite), porque também o trecho

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

falha. Acho que tem a ver com a forma como \inferruleprocura e processa seus argumentos. No momento não tenho tempo de analisar seu código, mas em muitos casos semelhantes ele ajuda a "proteger" o ambiente interno colocando-o entre colchetes. No seu caso o código

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

funciona sem problemas. Observe que isso $$deve ser evitado no LaTeX, consultePor que é \[ … \]preferível $$ … $$?.

informação relacionada