
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 foreach
bucle (proporcionado por pgffor
el 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 \CodeAfter
contador LaTeX jCol
contiene 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).
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 \cdots
en 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? )?