在小页面中对齐带有长方程标签的方程

在小页面中对齐带有长方程标签的方程

我想将两个方程式放在一起,并以 为中心对齐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}

在此处输入图片描述

相关内容