我想以\scriptsize
字体大小格式化这个矩阵:
\documentclass[12pt]{article}
\usepackage{amsmath}
\begin{document}
\scriptsize
$S=\begin{pmatrix}\sigma_1 & 0 & 0\\
0 &\sigma_2 & \vdots\\
0 &\dots &
\end{pmatrix}$
\end{document}
但是它看起来不平衡 - 第一行和第二行之间有多余的空白,并且\vdots
比第二行的要高$0$
。正确排版此表达式的最佳方法是什么?
编辑1:
解决方法是简单地写
$$S=\text{diag}(\sigma_1,\sigma_2,\ldots,0,\ldots),$$
其中术语$0,\ldots$
表示矩阵必须用零填充,如$S\in\mathbb{R}^{m\times n}$
。我仍然想知道如何正确排版矩阵。
编辑2:
我想从参考源复制此矩阵。它看起来像这样:
看起来点之间的空白已经调整,并且它们在垂直方向上也进行了手动移动。我觉得理想的选择是将最顶部的点与 的顶部对齐,将0
最底部的点与 的底部对齐$2$
。有没有办法像这样格式化矩阵?
答案1
我建议使用\svdots
宏来“缩放”垂直点。说实话,我从来都不喜欢标准定义。
\documentclass{article}
\usepackage{amsmath}
\DeclareRobustCommand{\svdots}{% s for `scaling'
\vbox{%
\baselineskip=0.33333\normalbaselineskip
\lineskiplimit=0pt
\hbox{.}\hbox{.}\hbox{.}%
\kern-0.2\baselineskip
}%
}
\begin{document}
$S=
\begin{pmatrix}
\sigma_1 & 0 & 0\\
0 & \sigma_2 & \svdots\\
0 & \dots &
\end{pmatrix}
\begin{pmatrix}
\sigma_1 & 0 & 0\\
0 & \sigma_2 & 0\\
0 & \dots &
\end{pmatrix}$
\scriptsize
$S=\begin{pmatrix}
\sigma_1 & 0 & 0\\
0 & \sigma_2 & \svdots\\
0 & \dots &
\end{pmatrix}$
\end{document}
如果您希望垂直点相对于公式轴居中,您可以这样做
\documentclass{article}
\usepackage{amsmath}
\DeclareRobustCommand{\svdots}{% s for `scaling'
\vcenter{%
\offinterlineskip
\hbox{.}
\vskip0.25\normalbaselineskip
\hbox{.}
\vskip0.25\normalbaselineskip
\hbox{.}%
}%
}
\begin{document}
$S=
\begin{pmatrix}
\sigma_1 & 0 & 0\\
0 & \sigma_2 & \svdots\\
0 & \dots &
\end{pmatrix}
\begin{pmatrix}
\sigma_1 & 0 & 0\\
0 & \sigma_2 & 0\\
0 & \dots &
\end{pmatrix}$
\scriptsize
$S=\begin{pmatrix}
\sigma_1 & 0 & 0\\
0 & \sigma_2 & \svdots\\
0 & \dots &
\end{pmatrix}$
\end{document}
答案2
我会用 来做到这一点stackengine
,它有一个\Vectorstack
数学模式命令:
\documentclass[12pt]{article}
\usepackage{amsmath}
\usepackage{stackengine}
\begin{document}
\scriptsize
$S=\begin{pmatrix}\sigma_1 & 0 & 0\\
0 &\sigma_2 & \Vectorstack{\vdots}\\
0 &\dots &
\end{pmatrix}$
\end{document}
对于以行中 0 的中间为中心的 \vdots,您可以尝试以下操作:
$S=\begin{pmatrix}\sigma_1 & 0 & 0\\[0.5ex]
0 &\sigma_2 & \raisebox{-0.12\height}[0pt][0pt]{$\vdots$}\\[0.5ex]
0 &\dots &
\end{pmatrix}$
答案3
使用包nicematrix
将值调整\NiceMatrixOptions
为-5pt
(最小值),
\documentclass[a4paper,12pt]{article}
\usepackage{amsmath,amssymb}
\usepackage{nicematrix}
\begin{document}
\NiceMatrixOptions{cell-space-top-limit=-5pt,cell-space-bottom-limit=-5pt}
$S=\begin{pNiceMatrix}
\sigma_{1} & 0 & 0\\
0 & \sigma_{2} & \vdots \\
0 & \ldots &
\end{pNiceMatrix}$
\end{document}
您可以获得类似的输出。