Mathpartir:如何在使用宏的条目之间插入“\\”?

Mathpartir:如何在使用宏的条目之间插入“\\”?

我正在使用一个工具来生成大量的 LaTeX,其中包含我用来排版的推理规则数学部分

下面,我得到了一个与我生成的代码非常相似的 MWE。我想做的是将其重新定义为\renewcommand{\ottpremise}[1]{#1\\},以分隔 mathpartir 中的每个前提。这允许它决定在哪里添加换行符,这是我追求的主要功能。

但是,当我执行此操作时,出现以下错误:

Argument of \\ has an extra }.

\\我认为问题可能与最后一个前提之后剩余的一个额外内容有关。

是什么导致了这个错误? 有没有办法\\在我的前提之间很好地添加,因为每个前提都包含在对的调用中\ottpremise? 是否有必要/可以避免\\最后的额外内容?

代码如下:

\documentclass{article}

\usepackage{amssymb}
\usepackage{amsmath}
\usepackage{mathpartir}


\newcommand{\ottdefntstep}[1]{
    \begin{ottdefnblock}[#1]{
    $\Gamma  \mid  \Theta  \vdash  \mathit{T}  \leadsto  \mathit{T'}$
    }{}
\ottusedrule{\ottdruleTStepAssoc{}}
\end{ottdefnblock}
}

\newcommand{\ottdruleTStepAssoc}[1]{\ottdrule[#1]{%
\ottpremise{\Gamma  \mid  \Theta  \Vdash  \tau  :  \mathit{D}  \langle  \tau_{{\mathrm{1}}}  , \, .. \, ,  \tau_{\mathit{n}}  {;}  \mathit{X}  \mapsto  \tau'  \rangle}%
\ottpremise{\Gamma  \mid  \Theta  \vdash  (   [  \tau'  /   \mathit{X} _ \mathit{D}   ]   )  \leadsto  \mathit{T'}}%
}{
\Gamma  \mid  \Theta  \vdash  \mathit{T}  \leadsto  \mathit{T'}}{%
{TStepAssoc}{}%
}}

\newcommand{\ottusedrule}[1]{#1\and}

\newcommand{\ottdrule}[4][]{{\inferrule[#4]{TODO #2 TODO}{#3}}}
\newcommand{\ottpremise}[1]{#1}

\begin{document}

\newenvironment{ottdefnblock}[3][]
{
    \begin{mathpar}
        }
        {
    \end{mathpar}
}

\ottdefntstep{}
\end{document}

相关内容