我正在尝试表达一个涉及两个矩阵求和的复杂数学表达式。一个矩阵包含一个条件求和(“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
。必须设置三个附加参数:
\setstackgap{L}{22pt}
定义堆栈的行间基线跳跃;\setstacktabbedgap{1em}
设置矩阵中的列间间隙;\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}