我再次需要gaussenv
宏方面的帮助。这一次,由于所绘制图片的名称nicematrix
必须不同。因此,我想创建一个数字 pgfkey,它保存当前矩阵的某种索引。
这就是我想到的:
\documentclass{article}
\usepackage{nicematrix}
\usepackage{tikz}
\usetikzlibrary{calc}
\pgfkeys{
/tikz/gaussenv/.cd,
niceMatrixName/.initial=1,
}
\begin{document}
\pgfkeysvalueof{/tikz/gaussenv/niceMatrixName}matrix
\begin{align*}
\begin{pNiceMatrix}[name={\pgfkeysvalueof{/tikz/gaussenv/niceMatrixName} matrix}]
1 & 1 & 1 & 1 \\
2 & 2 & 2 & 2 \\
3 & 3 & 3 & 3 \\
\end{pNiceMatrix}
\end{align*}
\begin{tikzpicture}[remember picture,overlay]
\draw (1 matrix-1-1) -- (1 matrix-2-2);
\end{tikzpicture}
\end{document}
但遗憾的是,编译 tikz 时不知道节点1 matrix-1-1
或1 matrix-2-2
,但如果我用作\begin{pNiceMatrix}[name={1 matrix}]
环境声明,则如果有效。
我猜这与扩张有关,但我不知道如何解决这个问题,甚至不知道这是否真的是因为扩张造成的。
有人能帮我吗?
答案1
您无需为 的每个环境命名nicematrix
,而应直接通过其名称访问 创建的 PGF/Tikz 节点nicematrix
。这些名称使用 给出的环境编号\NiceMatrixLastEnv
(在 ≥ 3.9 2020-01-10 版本中可用)。
\documentclass{article}
\usepackage{nicematrix}
\usepackage{tikz}
\begin{document}
\begin{align*}
\begin{pNiceMatrix}
1 & 1 & 1 & 1 \\
2 & 2 & 2 & 2 \\
3 & 3 & 3 & 3 \\
\end{pNiceMatrix}
\end{align*}
\begin{tikzpicture}[remember picture,overlay,name prefix = nm-\NiceMatrixLastEnv-]
\draw (1-1) -- (2-2);
\end{tikzpicture}
\end{document}