我正在尝试在 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
(以蓝色突出显示)取决于第一个参数是否有换行符。
有趣的是,如果我将 替换mbox
为fbox
,间距就会变得一致(以绿色突出显示)。这让我有些困惑,因为anfbox
应该与 an 相同mbox
,只是周围有边框。
有没有办法获得fbox
没有边框的一致间距?(或者我应该为此使用完全不同的机制?)
答案1
\begin{minipage}[b]
应该有帮助。然后将的参考点minipage
移动到底部元素(例如线)。然后应用正常的行距规则,\baselineskip
首先尝试基线。
否则参考点垂直位于中间。如果有多条线, 的深度minipage
会变得很大,很可能超过\lineskiplimit
。然后 TeX 不会根据 来设置空间\baselineskip
。而是插入\lineskip
(默认值:1pt)。
答案2
您可以尝试\strut
在第一个框中最后一行的末尾放置一个,在第二个框中第一行的开头放置另一个。
这应该强制执行它们之间的等效性\baselineskip
。