我希望在 Latex 中实现以下目标:
| a b | x | x1 | = | b1 |
| c d | | x2 | | b2 |
A x b
我在各个矩阵下写下标签 A、x 和 b。我用来编写矩阵的代码是(请随意改进我的代码——我已经十多年没有使用过 LateX 了)。
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\begin{align}
\begin{pmatrix}
a & b \\
c & d
\end{pmatrix}
\times
\begin{pmatrix}
x1 \\
x2
\end{pmatrix}
=
\begin{pmatrix}
b1 \\
b2
\end{pmatrix}
\end{align}
\end{document}
谢谢。
答案1
这是一个可能更好的版本,它有一个接受下标作为参数的新环境:
\documentclass{article}
\usepackage{amsmath}
\newenvironment{spmatrix}[1]
{\def\mysubscript{#1}\mathop\bgroup\begin{pmatrix}}
{\end{pmatrix}\egroup_{\textstyle\mathstrut\mysubscript}}
\begin{document}
\begin{equation}
\begin{spmatrix}{A}
a & b \\
c & d
\end{spmatrix}
\begin{spmatrix}{x}
x_1 \\
x_2
\end{spmatrix}
=
\begin{spmatrix}{b}
b_1 \\
b_2
\end{spmatrix}
\end{equation}
\end{document}
注意:下标太大可能会造成错位。
我不会将其\times
用于矩阵乘法:通常不使用符号。
align
对于单个方程来说也是错误的。
如果有人问为什么\def\mysubscript{#1}
定义中有这个位,答案是 LaTeX 不允许#1
在 的“结束”部分使用\newenvironment
。此限制不适用于xparse
:
\usepackage{xparse}
\NewDocumentEnvironment{spmatrix}{ m }
{\mathop\bgroup\begin{pmatrix}}
{\end{pmatrix}\egroup_{\textstyle\mathstrut #1}}
答案2
通过将矩阵和向量放入 中即可实现\mathop
。该示例还用于\textstyle
更大的尺寸和\vphantom
调整基线。
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\begin{align}
\mathop{\begin{pmatrix}
a & b \\
c & d
\end{pmatrix}}_{\textstyle A}
\times
\mathop{\begin{pmatrix}
x1 \\
x2
\end{pmatrix}}_{\textstyle x\vphantom{A}}
=
\mathop{\begin{pmatrix}
b1 \\
b2
\end{pmatrix}}_{\textstyle b\vphantom{A}}
\end{align}
\end{document}
补充:宏形式。
\documentclass{article}
\usepackage{amsmath}
\newcommand*{\putunder}[2]{%
{\mathop{#1}_{\textstyle #2}}%
}
\begin{document}
\begin{gather}
\putunder{
\begin{pmatrix}
a & b \\
c & d
\end{pmatrix}
}{A}
\times
\putunder{
\begin{pmatrix}
x1 \\
x2
\end{pmatrix}
}{x\vphantom{A}}
=
\putunder{
\begin{pmatrix}
b1 \\
b2
\end{pmatrix}
}{b\vphantom{A}}
\end{gather}
\end{document}
答案3
以下是滥用mathtools
(对功能的补充和一些修正amsmath
。请查看文档)我经常使用它。它实际上是在绘制一个括号,但将其线宽归零会使其不可见。它并不优雅,但我还没有遇到任何问题(并不意味着我不会遇到)。
命令是\underbracket[<rule thickness>] [<bracket height>]{<arg>}
\documentclass{article}
\usepackage{mathtools}
\begin{document}
\[
\underbracket[0pt][0pt]{%
\begin{pmatrix}
a & b \\
c & d
\end{pmatrix}}_{\mathstrut A}
\times
\underbracket[0pt][0pt]{%
\begin{pmatrix}
x_1 \\
x_2
\end{pmatrix}}_{\mathstrut x}
=
\underbracket[0pt][0pt]{%
\begin{pmatrix}
b_1 \\
b_2
\end{pmatrix}}_{\mathstrut b}
\]
\end{document}
标签的内容是顶部对齐的,所以我将感谢 egreg,现在内容无论高度如何都固定在基线上。x
标签向下推了一点。
答案4
在普通的 TeX 中我会使用 \atop:
$$
{\pmatrix{a &b \cr c &d\cr}\atop A}
{\pmatrix{x_1\cr x_2}\atop \mathstrut x}
\raise8pt\hbox{=} {\pmatrix{b_1\cr b_2}\atop b}
$$
\bye
但我必须手动调整等号的位置。