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(そのような機能を備えたコードを書くこともできますが、簡単ではありません)?

関連情報