\inferrule* 里面的 gather* 不居中吗?

\inferrule* 里面的 gather* 不居中吗?

喂食

\documentclass{article}
\pagestyle{empty}
\usepackage{amsmath}
\usepackage{mathpartir}% version 1.3.2 or 1.4.0
\begin{document}
\begin{gather*}
  \inferrule*[left=M,right=M]{premises}{conclusion}\\
  \textsc{\small M}\mskip5mu\frac{premises}{conclusion}\mskip5mu{\textsc{\small M}}
\end{gather*}
\end{document}

产量pdflatex

输出

如您所见,第二条推理规则相对于第一条略微向右移动。因此,其中一条规则肯定没有居中,而我的直觉是\inferrule*mathpartir 是罪魁祸首。这是真的吗?还是说 mathpartir 有gather*问题\frac?有任何修复或解决方法吗?已通知 mathpartir 的维护者。

答案1

\inferrule通过摆弄代码,据我所知,这似乎是由于在宏内部带星号的版本末尾添加了虚假空格造成的\mpr@inferstar@

看起来您可以使用该xpatch包修补该命令,如下所示:

\documentclass{article}
\pagestyle{empty}
\usepackage{amsmath}
\usepackage{mathpartir}% version 1.3.2 or 1.4.0
\usepackage{xpatch}
\makeatletter
\xpatchcmd{\mpr@inferstar@}{\mpr@vdots$ }{\mpr@vdots$}{}{}
\makeatother
\begin{document}
\begin{gather*}
  \inferrule*[left=M,right=M]{premises}{conclusion}\\
  \textsc{\small M}\mskip5mu\frac{premises}{conclusion}\mskip5mu{\textsc{\small M}}
\end{gather*}
\end{document}

修补后的 inferstar*

相关内容