TikZ : identifiants des cellules d'une matrice invalides après mise à jour
# Post initial :
Après un changement de version de pgf/Ti*k*Z (suite au passage de fedora 32 à 33) la figure suivante ne compile plus (avec lualatex) :
\documentclass{minimal}
\usepackage[french]{babel}
\usepackage{xcolor}
\definecolor{RdBu-9-1}{RGB}{178,24,43}
\definecolor{RdBu-9-2}{RGB}{214,96,77}
\definecolor{RdBu-9-8}{RGB}{67,147,195}
\definecolor{RdBu-9-9}{RGB}{33,102,172}
\usepackage{tikz}
\usetikzlibrary{patterns}
\usetikzlibrary{fadings}
\usetikzlibrary{calc}
\usetikzlibrary{positioning}
\usetikzlibrary{arrows}
\usetikzlibrary{matrix}
\usetikzlibrary{decorations.pathreplacing}
\tikzset{%
ffa/.style={%
pattern=north west lines,
pattern color=RdBu-9-2,
draw=none
},
ffc/.style={%
draw=RdBu-9-1,
line width=1}
}
\usepackage[babel, autostyle]{csquotes}
\begin{document}
\begin{tikzpicture}
\matrix [matrix of nodes,
anchor=west,
nodes={minimum size=.75cm}
] (zla0) at (0,0)
{
\draw[ffa,ffc] (0,0) circle (.3cm);&
\draw[ffa,ffc] (0,0) circle (.3cm);\\
};
\matrix [matrix of nodes,
anchor=north,
nodes={minimum size=.75cm},
below=2cm of zla0] (zlb0)
{
\draw[ffa,ffc] (0,0) circle (.3cm);\\
};
% Accolades
\foreach \m in {0} {
\draw (zla\m.south west) |- ($(zla\m.south west)!0.5!(zla\m.south
east) + (0,-.1)$) -| (zla\m.south east) node[pos=0, yshift=.2]
(zla\m-g) {};
%
\draw (zlb\m.north west) |- ($(zlb\m.north west)!0.5!(zlb\m.north
east) + (0,.1)$) -| (zlb\m.north east) node[pos=0, yshift=.2]
(zlb\m-g) {};
%
\draw[->>, black,] ([yshift=-.2cm]zla\m.south) -- ([yshift=.2cm]zlb\m.north);
}
\draw[|-, black] ([yshift=1.25cm]zla0-1-2.north) -- (zla0-1-2.north)
node[pos=.6,fill=white, minimum size=.75cm]{};
\node[above=0cm of zla0-1-1.north, anchor=south, align=center,
font=\tiny, text width=1.75cm]{\enquote{Je suis proche du \emph{Pic
Jean Ray}}};
\node[above=1.25cm of zla0-1-2.north, anchor=south, align=center,
font=\tiny, text width=1.75cm]{\enquote{Je suis sous une \emph{crête}}};
\node[below=0cm of zlb0.south, anchor=north, align=center,
font=\tiny, text width=4cm]{\enquote{Je suis proche du \emph{Pic
Jean Ray} et sous une crête}};
\node[fill=white,align=center, font=\large\sffamily] at ($(zla0.south east)!0.5!(zlb0.north
west)$){\emph{Fusion} des \emph{indices de localisation}};
\end{tikzpicture}
\end{document}
À la compilation j'obtiens des erreurs comme :
ERROR: Package pgf Error: No shape named `zla0-1-2' is known.
J'ai cru comprendre que le problème était lié à un changement du comportement de la *library matrix*, qui ne crée plus automatiquement les identifiants des cellues (*eg.* m-1-1), mais je ne trouve pas de documentation sur le sujet.
J'ai aussi l'impression que le paramètre `nodes={minimum size=.75cm}` ne fonctionne plus, il y a une nouvelle manière de procéder ??
# Mise à jour (6/10/20):
J'ai posé la même question sur le forum [TeX de stackexchange][1] et on m'a proposé une solution qui fonctionne bien. Il suffit d'ajouter la commande `\tikz` avant chaque `\draw`. Le code reprend alors sont comportement initial :
- Tous les noeuds ont à nouveau un identifiant qui leur est propre
- Les cercles sont correctement espacés, l'option `nodes={minimum size=.75cm}` fonctionne à noueau.
Il y a cependant une petite différence avec le comportement initial, les lignes sont un peu plus épaisses, mais ça ne me pose pas vraiment problème.
Je vous laisse aller voir le [post][1] pour avoir des détails sur les modifications opérés sur `tikz` entre les versions 3.1.4b (fedora 32) et 3.1.5b (fedora 33)
[1]: https://tex.stackexchange.com/questions/569674/tikz-matrix-nodes-name-unknown-after-update#comment1435982_569674