用左括号括住选定行的堆叠数学运算

用左括号括住选定行的堆叠数学运算

下列的

\documentclass[varwidth]{standalone}
\usepackage{amsmath}
\usepackage{stackengine}
\usepackage{xcolor}
\renewcommand{\vec}[1]{\mathbf{#1}}

\begin{document}
\stackMath
\begin{equation*}
    \mathcal{G} = \stackunder{p6mm}{\vec{a},\vec{b}} \overset{t[\mathit{3}]}{>}
    \mathcal{Z} = \stackunder{c2mm}{\braceVectorstack{{\vec{a}-\vec{b},\vec{a}+\vec{b}} {\vec{a}+2\vec{b},-\vec{a}} {\textcolor{red}{2\vec{a}+\vec{b},\vec{b}}}}}
\end{equation*}
\end{document}

给出

在此处输入图片描述

我想将另一个块用单独的花括号括起来添加到底层堆栈中,并且左侧只有一个括号。查看使用图像编辑器修改的图像:

在此处输入图片描述

嵌套\Shortunderstack{ \braceVectorstack{} ...}看起来是不可能的。天真的尝试

    \mathcal{Z} = \Shortunderstack{{c2mm} {\braceVectorstack{{\vec{a}-\vec{b},\vec{a}+\vec{b}} {\vec{a}+2\vec{b},-\vec{a}} {\textcolor{red}{2\vec{a}+\vec{b},\vec{b}}}}}}

给我

l.12 ...xtcolor{red}{2\vec{a}+\vec{b},\vec{b}}}}}}


./demo.tex:12: Package listofitems Error: 3 is an invalid index, index [] retained.

我怎样才能用这个包实现这个堆栈引擎或者不同的方式/包裹?

的文件堆栈引擎状态

除了需要此包的特定功能的情况外,stackengine 可能不是数学模式的最佳包,因为已有许多包直接满足堆叠和对齐数学对象的需求。

其实我只知道这个包数学\substack,,\overset\underset如果有人能提到作者提到的几个软件包,我将不胜感激。

答案1

我不太确定预期的输出应该是什么,但在这种情况下,我只会使用array,也许还有cases来自的环境amsmath

\documentclass{article}

\usepackage{amsmath}

\usepackage{xcolor}
\renewcommand{\vec}[1]{\mathbf{#1}}

\begin{document}
\[
\mathcal{Z} =
\begin{array}[t]{l}
\multicolumn{1}{c}{foo}\\
\begin{cases}
\vec{a}-\vec{b},\vec{a}+\vec{b}\\
\vec{a}+2\vec{b},-\vec{a}\\
\textcolor{red}{2\vec{a}+\vec{b},\vec{b}}
\end{cases}
\\
\begin{cases}
\vec{a}-\vec{b},\vec{a}+\vec{b}\\
\vec{a}+2\vec{b},-\vec{a}\\
\textcolor{red}{2\vec{a}+\vec{b},\vec{b}}
\end{cases}
\end{array}
%
= % second version
%
\begin{array}[t]{l}
\multicolumn{1}{c}{foo}\\
\left\{\begin{array}{@{}c@{}}
\vec{a}-\vec{b},\vec{a}+\vec{b}\\
\vec{a}+2\vec{b},-\vec{a}\\
\textcolor{red}{2\vec{a}+\vec{b},\vec{b}}
\end{array}\right.
\\[4ex]
\left\{\begin{array}{@{}c@{}}
\vec{a}-\vec{b},\vec{a}+\vec{b}\\
\vec{a}+2\vec{b},-\vec{a}\\
\textcolor{red}{2\vec{a}+\vec{b},\vec{b}}
\end{array}\right.
\end{array}
\]

\end{document}

在此处输入图片描述

我写过““因为我不明白第一行c2毫米是不是打字错误。

答案2

您可以\Shortunderstack在两个cases环境中使用,也可以在一个环境中使用\stackunder两个块:blockarray

\documentclass{article}
\usepackage{mathtools}
\usepackage{blkarray}
\usepackage{stackengine}
\usepackage{xcolor}
\renewcommand{\vec}[1]{\mathbf{#1}}

\begin{document}

\stackMath
\begin{equation*}
    \mathcal{G} = \stackunder{p6mm}{\vec{a},\vec{b}} \overset{t[\mathit{3}]}{>}
    \mathcal{Z} = \Shortunderstack{{c2mm} {\begin{dcases}\begin{matrix}\vec{a}-\vec{b},\vec{a}+\vec{b}\\ \vec{a}+2\vec{b},-\vec{a}\\ \textcolor{red}{2\vec{a}+\vec{b},\vec{b}}\end{matrix}\end{dcases}} { \begin{dcases}\vec{a}-\vec{b},\vec{a}+\vec{b}\\ \vec{a}+2\vec{b},-\vec{a}\\ \textcolor{red}{2\vec{a}+\vec{b},\vec{b}}\end{dcases}}}
\end{equation*}

\begin{equation*}
     \mathcal{G} = \stackunder{p6mm}{\vec{a},\vec{b}} \overset{t[\mathit{3}]}{>}
     \mathcal{Z} = \stackunder{c2mm}{\begin{blockarray}{c}\begin{block}{\{c}\vec{a}-\vec{b},\vec{a}+\vec{b}\\ \vec{a}+2\vec{b},-\vec{a}\\ \textcolor{red}{2\vec{a}+\vec{b},\vec{b}}\\ \end{block}\begin{block}{\{r}\vec{a}-\vec{b},\vec{a}+\vec{b}\\ \vec{a}+2\vec{b},-\vec{a}\\ \textcolor{red}{2\vec{a}+\vec{b},\vec{b}}\\ \end{block}\end{blockarray}}
\end{equation*}

\end{document} 

在此处输入图片描述

答案3

嵌套\stackunder{anchor}{\stackunder{b1}{\stackunder{b2}{...}}}

我已经找到了另一种解决方案堆栈引擎通过嵌套\stackunder{}和使用\left\{\Vectorstack{item1 item2 item3}\right.块。

\documentclass[varwidth]{standalone}
\usepackage{amsmath}
\usepackage{stackengine}

\begin{document}
\stackMath
\begin{equation*}
      \mathcal{Z} = \stackunder
      {c2mm}
      {\stackunder
         {\left\{\Vectorstack{block1 block1 block1}\right.}
         {\stackunder
           {\left\{\Vectorstack{block2 block2 block2}\right.}
           {\left\{\Vectorstack{block3 block3 block3}\right.}
         }
      }
\end{equation*}
\end{document}

在此处输入图片描述

相关内容