nicematrix:处理空单元格/将线条绘制到 NiceArray 中

nicematrix:处理空单元格/将线条绘制到 NiceArray 中

在此处输入图片描述

我想添加/绘制线条(如图所示的红色线条)在字母 A、B 和 D 下方(不在 处\cdots)-分别到矩阵的上端和下端

nicematrix 的正确方法是什么?

· 在“空单元格”处绘图似乎有问题。nicematrix 是否知道类似 TikZ-matrix 的键nodes into empty cells

·我可以使用 foreach 循环优雅地完成该任务吗?

\documentclass{article}
\usepackage{amsmath}

\usepackage{nicematrix} 
\usepackage{tikz} 
\begin{document}
$\begin{NiceArray}{(c c c c) }
    &     &           &      \\
A  & B  & \cdots  & D     \\
    &     &           &      \\
\CodeAfter
\begin{tikzpicture}[]
%\draw[red] (2-1) -- (1-1); % does not work-->' No shape named `1-1' is known.'
\draw[red] (2-1) -- (1.5|-1); % work
\end{tikzpicture}
\end{NiceArray}$
\end{document}

答案1

您的 Tikz 说明\draw (2-1) -- (1-|1.5) ;看起来不错(如果我真的明白您想要画什么……)。

对于循环,可以(例如)使用foreach循环(由 提供,pgffor由 加载pgf,其本身由 加载nicematrix)。

以下是一个例子:

\documentclass{article}
\usepackage{nicematrix} 
\usepackage{tikz} 

\begin{document}

$\begin{NiceArray}{(c c c c)}
  \NotEmpty  &     &           &      \\
A  & B  & \cdots  & D     \\
    &     &           &      \\
\CodeAfter
  \begin{tikzpicture} [red]
   \foreach \i in {1,...,\value{jCol}} 
      { 
        \draw (2-\i) -- (1-|\i.5) ; 
        \draw (2-\i) -- (last-|\i.5) ; 
      } ; 
  \end{tikzpicture}
\end{NiceArray}$

\end{document}

\CodeAfterLaTeX 计数器中jCol包含数组的总列数(而在数组主体中,它包含当前列的数量)。

上述代码的输出

您在问题中说您不想要 上方和下方的任何规则\cdots。当然,前面的代码不会自动检测\cdots单元格中的命令...您实际上想要一个可以自动检测潜在命令位置的代码吗\cdots(可以编写具有此类功能的代码,但这并不简单)?

相关内容