由于 pmatrix 环境中的对角点而导致的奇数间距

由于 pmatrix 环境中的对角点而导致的奇数间距

我正在尝试排版这个矩阵,但似乎第四行和第五行之间的间距不对,可能是由于对角点造成的:

矩阵

这是我的乳胶代码:

\[ \mathrm{Mat}_{\mathcal B}D = \begin{pmatrix}
1   & 1      & 0      &        &        &   \\
0   & 1      & 2      & \ddots &        &   \\
    & \ddots & \ddots & 3      & \ddots &   \\
    &        &        & \ddots & \ddots & 0 \\
    & (0)    &        & \ddots & 1      & n \\
    &        &        &        & 0      & 1 \end{pmatrix}\]

我该怎么做才能修复这个问题?

答案1

tabstackengine包有一个\fixTABwidth{T}宏,用于强制所有列的宽度相等(基于最宽的列)。除此之外,我只需使用 设置列间距,\setstacktabbedgap{}使用 设置垂直基线跳过\setstackgap{L}{},即可使用宏实现所需的任何间距\parenMatrixstack

\documentclass{article}
\usepackage{tabstackengine}
\setstackgap{L}{1.2\normalbaselineskip}
\setstacktabbedgap{.4em}
\fixTABwidth{T}
\begin{document}
\[ \mathrm{Mat}_{\mathcal B}D = \parenMatrixstack{
1   & 1      & 0      &        &        &   \\
0   & 1      & 2      & \ddots &        &   \\
    & \ddots & \ddots & 3      & \ddots &   \\
    &        &        & \ddots & \ddots & 0 \\
    & (0)    &        & \ddots & 1      & n \\
    &        &        &        & 0      & 1 }\]
\end{document}

在此处输入图片描述

答案2

除了矩阵最后两行之间的垂直空间小于其他行之间的垂直空间之外,水平的前两列之间的空间(以及最后两列之间的空间)小于其他列之间的空间。第一个问题出现的原因是高度字形的\ddots是 - 假设您使用的是 Computer Modern 字体系列,主文档字体大小为 10pt - 是15.1pt,而 和01只是6.4pt。第二个问题出现是因为宽度字形的\ddots11.7pt,而01只是5pt

最简单的补救办法(barbara beeton 在评论中已经提出过)是在矩阵的右上单元格中插入一个\hphantom{\ddots}(“水平幻影”,宽度为但没有高度或深度)指令,并在矩阵的左下单元格中插入一个(“幻影”​​,宽度、高度和深度为)指令。\ddots\phantom{\ddots}\ddots

在此处输入图片描述

\documentclass{article}
\usepackage{amsmath}
\begin{document}

\[ 
\mathrm{Mat}_{\mathcal B}D = 
\begin{pmatrix}
1   & 1      & 0      &        &        & \hphantom{\ddots}  \\
0   & 1      & 2      & \ddots &        &   \\
    & \ddots & \ddots & 3      & \ddots &   \\
    &        &        & \ddots & \ddots & 0 \\
    & (0)    &        & \ddots & 1      & n \\
\phantom{\ddots}  & & &        & 0      & 1
\end{pmatrix}
\]

\end{document}

在旁边:如果您的视力非常敏锐,您可能会注意到矩阵的第 1 列和第 2 列(以及第 2 列和第 3 列)之间的水平距离仍然不完全等于其他列之间的水平距离。这是因为的宽度\ddots11.7pt(如前所述),而(0)第二列中条目的宽度为12.8pt。考虑到矩阵的整体稀疏性,我认为这种宽度差异并不重要;它当然不应该影响“读取”矩阵的能力。(但是,如果您对印刷完美性非常挑剔,您可能希望加载包mathtools而不是包amsmath,并替换(0)\mathclap{(0)}。)

相关内容