nicematrix 通过 pgfkey 设置名称-扩展问题?

nicematrix 通过 pgfkey 设置名称-扩展问题?

我再次需要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-11 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}

上述代码的结果

相关内容