数学模式下等高矩阵括号

数学模式下等高矩阵括号

我正在尝试表达一个涉及两个矩阵求和的复杂数学表达式。一个矩阵包含一个条件求和(“a=0 或 b=1”),我使用“子堆栈”方法在 Sum 符号下表达该条件,如以下建议所示:https://en.wikibooks.org/wiki/LaTeX/Mathematics

不幸的是,这会导致矩阵支架的顶部和底部未对齐,如下所示: 在此处输入图片描述

如果不是这种情况的话看起来会更好。

请问这个问题可以修复吗?

我的 MWE 是:

\documentclass[10pt,a4paper]{article}
\usepackage[latin1]{inputenc}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{graphicx}

\begin{document}
Minimum working example:

\begin{equation*}
\dfrac{\mathrm{d}y}{\mathrm{d}x} = 
\begin{bmatrix}
-\sum_{i=1}^{a} A & \cdots & B \\
\vdots  & \ddots  & \vdots  \\
B & \cdots & -\sum_{i=1}^{a} A
\end{bmatrix}
+
\begin{bmatrix}
\sum_{\substack{
        a,b,c,d \\
        a=0~\mathrm{or}~b=1
}} 
A_{ijkl}
-
\sum_{\substack{
        a,b,c,d \\
a=0~\mathrm{or}~b=1
}} 
B_{ijkl} \\
\vdots\\
\sum_{\substack{
        a,b,c,d \\
a=0~\mathrm{or}~b=1
}} 
C_{ijkl}
-
\sum_{\substack{
        a,b,c,d \\
a=0~\mathrm{or}~b=1
}} 
D_{ijkl}
\end{bmatrix}
\end{equation*}

\end{document}

答案1

您可以\vphantom在第一个中bmatrix强制使用与第二个中使用的括号一样大的括号bmatrix

\documentclass[10pt,a4paper]{article}
\usepackage[latin1]{inputenc}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{graphicx}

\begin{document}
Minimum working example:

\begin{equation*}
\dfrac{\mathrm{d}y}{\mathrm{d}x} = 
\begin{bmatrix}
\vphantom{\sum_{\substack{
        a,b,c,d \\
        a=0~\mathrm{or}~b=1
}}}%
-\sum_{i=1}^{a} A & \cdots & B \\
\vdots  & \ddots  & \vdots  \\
B & \cdots & -\sum_{i=1}^{a} A
\end{bmatrix}
+
\begin{bmatrix}
\sum_{\substack{
        a,b,c,d \\
        a=0~\mathrm{or}~b=1
}} 
A_{ijkl}
-
\sum_{\substack{
        a,b,c,d \\
a=0~\mathrm{or}~b=1
}} 
B_{ijkl} \\
\vdots\\
\sum_{\substack{
        a,b,c,d \\
a=0~\mathrm{or}~b=1
}} 
C_{ijkl}
-
\sum_{\substack{
        a,b,c,d \\
a=0~\mathrm{or}~b=1
}} 
D_{ijkl}
\end{bmatrix}
\end{equation*}

\end{document}

在此处输入图片描述

答案2

这里我使用了 TABstacks,形式为\bracketMatrixstack\bracketVectorstack。必须设置三个附加参数:

  1. \setstackgap{L}{22pt}定义堆栈的行间基线跳跃;

  2. \setstacktabbedgap{1em}设置矩阵中的列间间隙;

  3. \newcommand\mystrut{\rule[-2ex]{0pt}{2ex}}定义一个支柱,我将其放置在堆栈末端之前,以便与两个堆栈相关的支架具有相同的深度/高度。

妇女权利委员会:

\documentclass[10pt,a4paper]{article}
\usepackage[latin1]{inputenc}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{graphicx}
\usepackage{tabstackengine}
\TABstackMath
\begin{document}
Minimum working example:

\begin{equation*}
\setstackgap{L}{22pt}
\setstacktabbedgap{1em}
\newcommand\mystrut{\rule[-2ex]{0pt}{2ex}}
\dfrac{\mathrm{d}y}{\mathrm{d}x} = 
\bracketMatrixstack{
-\sum_{i=1}^{a} A & \cdots & B \\
\vdots  & \ddots  & \vdots  \\
B & \cdots & -\sum_{i=1}^{a} A
\mystrut}
+
\bracketVectorstack{
\sum_{\substack{
        a,b,c,d \\
        a=0~\mathrm{or}~b=1
}} 
A_{ijkl}
-
\sum_{\substack{
        a,b,c,d \\
a=0~\mathrm{or}~b=1
}} 
B_{ijkl} \\
\vdots\\\mystrut
\sum_{\substack{
        a,b,c,d \\
a=0~\mathrm{or}~b=1
}} 
C_{ijkl}
-
\sum_{\substack{
        a,b,c,d \\
a=0~\mathrm{or}~b=1
}} 
D_{ijkl}
\mystrut}
\end{equation*}

\end{document}

在此处输入图片描述

相关内容