如何获得 mbox 周围一致的间距?

如何获得 mbox 周围一致的间距?

我正在尝试在 LaTeX 中排版一个公式,并在其下方添加规则名称,如下所示:

期望输出

规则的代码是自动生成的混乱(不一定使用数学模式),由定理证明器输出伊莎贝尔/HOL,我对此几乎没有控制权。我希望能够通过使用mbox或类似的东西来隔离自动生成的输出。

我尝试生成一个宏来生成此输出,一旦我删除格式命令,结果就会归结为以下内容:

\newcommand{\myrule}[2]{{
  \begin{minipage}{\textwidth}%
      \mbox{#1} \\
      \mbox{#2}
  \end{minipage}}}

然后可以将其用作\myrule{\AutoGeneratedOutput}{ParitalPrimeSuc}

我遇到的问题是两个框之间的垂直空间取决于第一个框的内容。例如,考虑以下示例:

\documentclass{article}

\begin{document}

\newcommand{\myrule}[2]{{
    \begin{minipage}{\textwidth}%
        \mbox{#1} \\
        \mbox{#2}
    \end{minipage}}}

\newcommand{\myruleii}[2]{{
    \begin{minipage}{\textwidth}%
        \fbox{#1} \\
        \fbox{#2}
    \end{minipage}\ignorespacesafterend}}

\myrule{\begin{minipage}{1in}line 1\end{minipage}}{last line}

\vspace*{.5in}

\myrule{\begin{minipage}{1in}line 1\\ line 2\end{minipage}}{last line}

\vspace*{.5in}

\myruleii{\begin{minipage}{1in}line 1\end{minipage}}{last line}

\vspace*{.5in}

\myruleii{\begin{minipage}{1in}line 1\\ line 2\end{minipage}}{last line}

\end{document}

输出如下(为了节省空间,图像已移动):

实际产量

mbox请注意,第一个和第二个底部之间的距离mbox(以蓝色突出显示)取决于第一个参数是否有换行符。

有趣的是,如果我将 替换mboxfbox,间距就会变得一致(以绿色突出显示)。这让我有些困惑,因为anfbox应该与 an 相同mbox,只是周围有边框

有没有办法获得fbox没有边框的一致间距?(或者我应该为此使用完全不同的机制?)

答案1

\begin{minipage}[b]应该有帮助。然后将的参考点minipage移动到底部元素(例如线)。然后应用正常的行距规则,\baselineskip首先尝试基线。

否则参考点垂直位于中间。如果有多条线, 的深度minipage会变得很大,很可能超过\lineskiplimit。然后 TeX 不会根据 来设置空间\baselineskip。而是插入\lineskip(默认值:1pt)。

答案2

您可以尝试\strut在第一个框中最后一行的末尾放置一个,在第二个框中第一行的开头放置另一个。

这应该强制执行它们之间的等效性\baselineskip

相关内容