nicematrix: manejar con celdas vacías/dibujar líneas en un NiceArray

nicematrix: manejar con celdas vacías/dibujar líneas en un NiceArray

ingrese la descripción de la imagen aquí

Me gustaría agregar/dibujar líneas (como la que se muestra en rojo) sobreydebajo de las letras A, B y D (no en el \cdots) -cada uno al extremo superior e inferior de la matriz.

¿Cuál es el método correcto de nicematrix para eso?

· Parece haber un problema al dibujar en "celdas vacías". ¿Nicematrix conoce una clave como la de TikZ-matrix nodes into empty cells?

·¿Puedo hacer esa tarea elegantemente con un bucle 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}

Respuesta1

Tu instrucción de Tikz \draw (2-1) -- (1-|1.5) ;parece buena (si realmente entiendo lo que quieres dibujar...).

Para un bucle, es posible (por ejemplo) utilizar un foreachbucle (proporcionado por pgfforel cual es cargado por pgf, a su vez cargado por nicematrix).

Aquí hay un ejemplo:

\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}

En el \CodeAftercontador LaTeX jColcontiene el número total de columnas de la matriz (mientras que en el cuerpo de la matriz, contiene el número de la columna actual).

Salida del código anterior

Dices en tu pregunta que no quieres ninguna regla por encima y por debajo de \cdots. Por supuesto, el código anterior no detecta automáticamente el comando \cdotsen la celda... ¿Realmente desea un código con una detección automática de la posición de los comandos potenciales \cdots(es posible escribir un código con dicha característica, pero no es sencillo? )?

información relacionada