我试图构建一个带有垂直、水平和对角点的矩阵,但结果让我很失望。每行之间的间距并不总是相等,列之间的间距也是如此。有人可以帮我吗?这是我的代码:
$$A = \begin{pmatrix}
1 & 0 & & \dots & & 0 \\
d & e & f & & &\vdots \\
0 & d & e & f & \\
\vdots & & \ddots & \ddots & \ddots & 0 \\
& & & d & e & f \\
0 & & \dots & & 0 & 1
\end{pmatrix}$$
答案1
\documentclass{article}
\usepackage{amsmath}
\begin{document}
% Dots in all rows/columns
\[
A =
\begin{pmatrix}
1 & 0 & 0 & 0 & \dots & 0 \\
d & e & f & 0 & & \vdots \\
0 & d & e & f & & \vdots \\
\vdots & & \ddots & \ddots & \ddots & \vdots \\
\vdots & & & d & e & f \\
0 & \dots & \dots & \dots & 0 & 1
\end{pmatrix}
\]
% Remove most dots and excess zeros
\[
A =
\begin{pmatrix}
1 & & & & & \\
d & e & f & & & \\
& d & e & f & & \\
& & \ddots & \ddots & \ddots & \\
& & & d & e & f \\
& & & & & 1
\end{pmatrix}
\]
% Remove most dots but add some zeros back
\[
A =
\begin{pmatrix}
1 & 0 & 0 & & & \\
d & e & f & & 0 & \\
& d & e & f & & \\
& & \ddots & \ddots & \ddots & \\
& 0 & & d & e & f \\
& & & 0 & 0 & 1
\end{pmatrix}
\]
\end{document}
以下是使用环境执行此操作的几种方法。奇怪的间距是由/ /pmatrix
的垂直高度/宽度引起的。第一个解决方案只是确保每列和每行都有垂直和水平点,因此间距相同。第二个选项是删除除 之外的点,然后这些点只出现在一行中,并且是行中唯一的东西,因此间距看起来更好。第三个选项类似,但矩阵的其余部分为零,由几个零表示。\vdots
\dots
\ddots
\ddots
答案2
我建议nicematrix
。
\documentclass{article}
\usepackage{nicematrix}
\begin{document}
\[\renewcommand{\arraystretch}{1.1}
A = \begin{pNiceMatrix}[nullify-dots,xdots/shorten=3pt]
1 & 0 & & \Cdots & & 0 \\
d & e & f & & &\Vdots \\
0 & d & e & f & \\
\Vdots & & \Ddots & \Ddots & \Ddots & 0 \\
& & & d & e & f \\
0 & & \Cdots & & 0 & 1
\end{pNiceMatrix}\]
\end{document}
答案3
我已经根据这个函数调整了你的矩阵老问题非常好的用户@Steven B. Segletes 使用tabstackengine
:
\documentclass[a4paper,12pt]{article}
\usepackage{amsmath,amssymb}
\usepackage{tabstackengine}
\stackMath
\begin{document}
\[
\setstackgap{L}{1\baselineskip}
\fixTABwidth{T}
A = \parenMatrixstack{
1 & 0 & & \dots & & 0 \\
d & e & f & & & \vdots \\
0 & d & e & f & & 0\\
\vdots & & \ddots & \ddots & \ddots & 0 \\
& & & d & e & f \\
0 & & \dots & & 0 & 1
}
\]
\end{document}