我想添加/绘制线条(如图所示的红色线条)和在字母 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}
在\CodeAfter
LaTeX 计数器中jCol
包含数组的总列数(而在数组主体中,它包含当前列的数量)。
您在问题中说您不想要 上方和下方的任何规则\cdots
。当然,前面的代码不会自动检测\cdots
单元格中的命令...您实际上想要一个可以自动检测潜在命令位置的代码吗\cdots
(可以编写具有此类功能的代码,但这并不简单)?