增加 vdots 中的点间距

增加 vdots 中的点间距

基本上,我想要一个\vdotsfor命令,它可以\hdotsfor执行垂直点以外的操作。需要增加两行上的点间距,这样看起来会很漂亮,而不必\vdots在两行上都使用两个。(与此相关的另一个线程有一些代码,但它对我没有任何作用。)

答案1

我不确定这是否是原帖作者想要的:基本上,我在\multirow命令中放置了垂直点,使跨度适应跨度行数。间距不起作用,所以我提供了一个额外的参数来垂直移动它。

\documentclass{article}
\usepackage{multirow}
\newcommand{\vdotrows}[2][-15pt]{%
  \multirow{#2}{*}{%
    \vbox {%
      \baselineskip = \dimexpr 2pt\relax 
      \multiply\baselineskip by #2\relax
      \advance\baselineskip by 2pt\relax
      \lineskiplimit = 0pt\relax
      \kern 6pt\relax
      \vskip #1\relax%
      \hbox {.}\hbox {.}\hbox {.}}%
  }%
}
\begin{document}
\[
\left(
\begin{array}{ccccc}
  1            & 2            & \cdots & 2 & 2      \\
  \vdotrows[4pt]{3} & 1       &        &   & 2      \\
               & \vdotrows{2} & \ddots &   & \vdots \\
               &              &        & 1 & 2      \\
  1            & 1            & \cdots & 1 & 1      \\
\end{array}
\right)
\]
\end{document}

答案2

在其环境中,该包提供了类似于的nicematrix命令。可以自定义该点规则。\vdotsfor\hdotsfor

\documentclass{article}
\usepackage{nicematrix}

\begin{document}
\begin{gather}
\begin{pNiceArray}{ccccc}
  1            & 2            & \cdots & 2 & 2      \\
  \Vdotsfor{3} & 1            &        &   & 2      \\
               & \Vdotsfor{2} & \ddots &   & \vdots \\
               &              &        & 1 & 2      \\
  1            & 1            & \cdots & 1 & 1      \\
\end{pNiceArray} \\
\begin{pNiceArray}{ccccc}[xdots/shorten=3mm]
  1            & 2            & \cdots & 2 & 2      \\
  \Vdotsfor{3} & 1            &        &   & 2      \\
               & \Vdotsfor{2} & \ddots &   & \vdots \\
               &              &        & 1 & 2      \\
  1            & 1            & \cdots & 1 & 1      \\
\end{pNiceArray}
\end{gather}
\end{document}

上述代码的输出

相关内容