在 \left\right 内使用选项 [t] 对齐环境

在 \left\right 内使用选项 [t] 对齐环境

这可能是一个简单的修复,但我找不到方法。(图片和 MWE 在最后)

我有一个命令

\newcommand{\glsbi}[1]{$\left| \quad \begin{aligned}#1\end{aligned}\quad \right|$}

能够将方程系统包含在内\left|\right|位于同一行。
当这样定义时,它可以工作,但是它会将方程系统与它之前的文本垂直居中。

当我将命令更改为

\newcommand{\glsbt}[1]{$\left| \quad \begin{aligned}[t]#1\end{aligned}\quad \right|$}

它将第一个等式与文本对齐,但是\left|\right|上升得太远了。

我怎样才能使\left|\right|具有与第一个命令相同的高度,但具有第二个命令的垂直对齐?

梅威瑟:

\documentclass{article}
\usepackage{amsmath}

\newcommand{\glsbi}[1]{$\left| \quad \begin{aligned}#1\end{aligned}\quad     \right|$}
\newcommand{\glsbt}[1]{$\left| \quad \begin{aligned}[t]#1\end{aligned}\quad \right|$}

\begin{document}
Works as intended: \glsbi{x &= y \\ x &= 2y + 3}\\[1cm]

Works not as intended: \glsbt{x &= y \\ x &= 2y + 3}
\end{document}

图片:

答案1

一些盒子操作:

\documentclass{article}
\usepackage{amsmath}

\newcommand{\glsbi}[1]{$\left| \quad \begin{aligned}#1\end{aligned} \quad \right|$}

\makeatletter
\newcommand{\glsbt}[1]{%
  \sbox\z@{$\begin{aligned}#1\end{aligned}$}%
  \sbox\tw@{$\begin{aligned}[t]#1\end{aligned}$}%
  \raisebox{\dimexpr\dp\z@-\dp\tw@\relax}{$\left| \quad \copy\z@ \quad \right|$}%
}
\makeatother

\begin{document}
Works as intended: \glsbi{x &= y \\ x &= 2y + 3}\\[1cm]

Works also as intended: \glsbt{x &= y \\ x &= 2y + 3}
\end{document}

垂直的

答案2

为了提出与张瑞熙的精彩回答不同的策略,您可以使用delarray

\documentclass{article}
\usepackage{amsmath}
\usepackage{delarray}

\newcommand{\glsbi}[1]{$\left|\quad\begin{aligned}#1\end{aligned}\quad\right|$}
\newcommand{\glsbt}[1]{%
  $\begin{array}[t]|{@{\quad}c@{\quad}}|
   \begin{aligned}[t]#1\end{aligned}
  \end{array}$%
}

\begin{document}

Works as intended: \glsbi{x &= y \\ x &= 2y + 3}

\bigskip

Works as intended: \glsbt{x &= y \\ x &= 2y + 3 }

\end{document}

在此处输入图片描述

相关内容