
Gostaria de adicionar/desenhar linhas (como a vermelha mostrada) sobreesob as letras A, B e D (não no \cdots
) -cada um para a extremidade superior e inferior da matriz.
Qual é o método correto do nicematrix para isso?
· Parece haver um problema ao desenhar em “células vazias”. Nicematrix conhece uma chave como a da matriz TikZ nodes into empty cells
?
·Posso fazer essa tarefa elegantemente com um loop 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}
Responder1
Suas instruções do Tikz \draw (2-1) -- (1-|1.5) ;
parecem boas (se eu realmente entender o que você quer desenhar...).
Para um loop, é possível (por exemplo) usar um foreach
loop (fornecido por pgffor
which é carregado por pgf
, ele próprio carregado por nicematrix
).
Aqui está um exemplo:
\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}
No \CodeAfter
contador LaTeX jCol
contém o número total de colunas do array (enquanto no corpo do array contém o número da coluna atual).
Você diz em sua pergunta que não deseja nenhuma regra acima e abaixo do arquivo \cdots
. Claro, o código anterior não detecta automaticamente o comando \cdots
na célula... Você realmente quer um código com detecção automática da posição dos comandos potenciais \cdots
(é possível escrever um código com esse recurso, mas não é simples )?