我想将两个方程式放在一起,并以 为中心对齐gather
。为了使问题复杂化,我需要两列这样的方程式,因此我将它们括在 中minipage
。这很容易出现一些问题...这些方程式不太一致:
\documentclass[a4paper]{article}
% Make the equation fit on the page.
\usepackage[margin=2.5cm]{geometry}
\usepackage{amsmath}
\newcommand*{\subtype}{\mathrel{<:}}
\newcommand*{\subtypeDep}{\mathrel{<:_{\textrm{dep}}}}
\newcommand*{\subtypePt}{\mathrel{<:_{\textrm{pt}}}}
\newcommand*{\lit}{\texttt}
\begin{document}
\begin{minipage}[t]{0.5\linewidth}
\begin{gather}
\tau \subtype \tau \text, \tag{\textsc{S-Refl}} \\
\frac{
\delta_1 \subtypeDep \delta_2 \quad \rho_1 \subtypePt \rho_2
}{
\delta_1\,\rho_1 \subtype \delta_2\,\rho_2
} \text, \tag{\textsc{S-Var}}
\end{gather}
\end{minipage}%
\begin{minipage}[t]{0.5\linewidth}
\begin{align}
\delta &\subtypeDep \delta \text, \tag{\textsc{SD-Refl}} \\
\lit{const} &\subtypeDep \lit{marking} \text, \tag{\textsc{SD-Marking}} \\
\rho &\subtypePt \rho \text, \tag{\textsc{SPt-Relf}} \\
\lit{int} &\subtypePt \lit{double} \tag{\textsc{SPt-Double}}
\end{align}
\end{minipage}
\end{document}
有没有什么可能的办法可以解决的缺陷varwidth
?
答案1
左侧框中的顶部方程式位于分配的空间的中心;然而,底部方程式太宽并且会与标签冲突,因此它被移动到左侧。
您可以使用eqparbox
它,使顶部方程与底部方程一样宽。
第一个参数\matheqmakebox
是任意的(但唯一的)标签。
\documentclass[a4paper]{article}
% Make the equation fit on the page.
\usepackage[margin=2.5cm]{geometry}
\usepackage{amsmath}
\usepackage{eqparbox}
\usepackage{lipsum}
\newcommand*{\subtype}{\mathrel{<:}}
\newcommand*{\subtypeDep}{\mathrel{<:_{\textrm{dep}}}}
\newcommand*{\subtypePt}{\mathrel{<:_{\textrm{pt}}}}
\newcommand*{\lit}{\texttt}
\newcommand{\matheqmakebox}[2]{%
\eqmakebox[#1]{$\displaystyle{#2}$}%
}
\begin{document}
\fboxrule=0.1pt
\fboxsep=-\fboxrule
\lipsum*[2]
\begin{center}
\setlength{\abovedisplayskip}{0pt}
\fbox{\begin{minipage}[t]{0.5\linewidth}
\begin{gather}
\matheqmakebox{A}{
\tau \subtype \tau,
}
\tag{\textsc{S-Refl}} \\
\matheqmakebox{A}{
\frac{
\delta_1 \subtypeDep \delta_2 \quad \rho_1 \subtypePt \rho_2
}{
\delta_1\,\rho_1 \subtype \delta_2\,\rho_2
},}
\tag{\textsc{S-Var}}
\end{gather}
\end{minipage}}%
\fbox{\begin{minipage}[t]{0.5\linewidth}
\begin{align}
\delta &\subtypeDep \delta \text, \tag{\textsc{SD-Refl}} \\
\lit{const} &\subtypeDep \lit{marking} \text, \tag{\textsc{SD-Marking}} \\
\rho &\subtypePt \rho \text, \tag{\textsc{SPt-Relf}} \\
\lit{int} &\subtypePt \lit{double} \tag{\textsc{SPt-Double}}
\end{align}
\end{minipage}}
\end{center}
\lipsum[3]
\end{document}
我以前\fbox
只是为了显示盒子的边界。
只是为了完整性,这里是另一个没有盒子的例子。
\documentclass[twocolumn]{article}
\usepackage{amsmath}
\usepackage{lipsum}
\begin{document}
\lipsum*[2]
\begin{gather}
short \tag{widetag} \\
lllllloooooonnnggg\tag{widetag}
\end{gather}
\lipsum[3]
\end{document}