无法使用 Pgf 3.0.0 中的矩阵自定义样式节点

无法使用 Pgf 3.0.0 中的矩阵自定义样式节点

我一直在使用 TikZ 以矩阵作为布局来制作一些图表。

使用 Pgf 2.10 版时一切顺利,但现在我使用的是 Pgf 3.0.0 版 (TexLive2013),我几乎确定存在一个问题,该问题与使用自定义样式节点作为表元素有关。问题是我无法使用正常引用((matrixName)-(rowNum)-(colNum)),因为它不可用。

我已将我的文档缩减为MWE:

\documentclass[12pt]{standalone}

\usepackage{tikz}
\usetikzlibrary{shapes.geometric, matrix}

\tikzset{newIdea/.style={rectangle, fill=blue!90},
         newPlan/.style={rectangle, rounded corners=2mm, text=white, fill=blue!90}
}

\begin{document}

    \begin{tikzpicture}
        \matrix (magic) [matrix of nodes, column sep=10mm]
        {       
            \node[newIdea] {8}; & \node[newPlan] {1}; & \node[newIdea] {6}; \\
        };        
        \draw[thick,red,->] (magic-1-1) |- (magic-1-2);
    \end{tikzpicture} 

\end{document}

使用 Pgf 2.10,一切正常;使用 Pgf 3.0.0 时出现以下错误消息:

包 pgf 错误:没有已知名为 magic-1-1 的形状。

答案1

从 3.0.0 版本开始,当您使用时,matrix of nodes似乎\node不允许在单元格内使用(我最初不喜欢这个功能(我希望它是一个功能而不是一个错误),但在考虑之后,它完全有道理);但是,您仍然可以使用语法|[<options>]|来修改节点:

\documentclass[12pt]{standalone}

\usepackage{tikz}
\usetikzlibrary{shapes.geometric, matrix}

\tikzset{newIdea/.style={rectangle, fill=blue!90},
         newPlan/.style={rectangle, rounded corners=2mm, text=white, fill=blue!90}
}

\begin{document}

    \begin{tikzpicture}
        \matrix (magic) [matrix of nodes, column sep=10mm]
        {       
            |[newIdea]|8 &  |[newPlan]|1 & |[newIdea]|6 \\
        };        
        \draw[thick,red,->] (magic-1-1) |- (magic-1-2);
    \end{tikzpicture} 

\end{document}

在此处输入图片描述

相关内容