Post initial :

Après un changement de version de pgf/TikZ (suite au passage de fedora 32 à 33) la figure suivante ne compile plus (avec lualatex) :

Ouvrir dans l'éditeur Overleaf
\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 :

Ouvrir dans l'éditeur Overleaf
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 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 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)

Cette question est marquée comme « Wiki ».

Posée 03 Nov '20, 12:16

Atm's gravatar image

Atm
112
Taux d'acceptation : 0%

Modifiée 06 Nov '20, 12:49

Bienvenue sous TeXnique ! Une question similaire a déjà été posée. Sa réponse convient-elle ici ?

(03 Nov '20, 14:13) denis ♦♦ denis's gravatar image

Bonjour. Pas vraiment, puisque j'utilise la fonction \draw (et pas \node comme dans l'exemple) dans mes cellules de matrices, je ne peux donc pas donner directement (ou alors j'ignore comment) un identifiant aux cellules de la matrice.

(03 Nov '20, 15:11) Atm Atm's gravatar image

@Atm : bienvenue sur TeXnique !

Pourquoi ne pas utiliser des nœuds ? La fonction \node est bien utile.

(03 Nov '20, 15:55) Pathe ♦♦ Pathe's gravatar image

Je ne suis pas un spécialiste de TikZ et n'ai pas de réponse. Mais je remarque que lorsque l'élément 1-2 de la matrice n'est pas un chemin (« path »), le problème ne se pose plus. Pour le constater, il suffit de remplacer le 2e \draw[ffa,ffc] (0,0) circle (.3cm); par, par exemple, coucou.

(03 Nov '20, 15:59) denis ♦♦ denis's gravatar image

J'avoue ne pas comprendre le choix d'utiliser des matrices pour obtenir le schéma désiré.

Pourquoi ne pas utiliser des graphes ? La librairie graphs est détaillée dans la doc, à partir de la page 269, et elle me semble répondre à votre besoin.

(03 Nov '20, 16:12) Pathe ♦♦ Pathe's gravatar image

@Pathe merci

  1. À vrai dire je ne sais pas vraiment pourquoi j'utilise \draw, j'ai fait cette figure il y a un petit moment. J'ai sûrement fait ce qui semblait le plus simple sur le moment et comme ça fonctionnait comme ça…

  2. En fait cette figure est construite à partir d'une autre figure plus compliquée (avec laquelle j'ai le même problème, mais l'exemple aurait été plus long), qui met en lien des matrices contenant des symboles (comme ici) et des matrices contenant des valeurs. J'ai donc utilisé des matrices partout pour avoir un rendu cohérent.

(03 Nov '20, 16:27) Atm Atm's gravatar image

@denis

Oui en effet, j'arrive aussi à compiler comme ça. j'ai l'impression qu'avec cette nouvelle version de tikz un noeud est implicitement crée, avec le contenu de la cellule comme label (ie coucou est transformé en \node{coucou}).

(03 Nov '20, 16:30) Atm Atm's gravatar image
Affichage de 5 parmi 7 Afficher 2 commentaire(s) en plus
Soyez le premier à répondre à cette question !
(dés)activer l'aperçu

Suivre cette question

Par courriel :

Une fois que vous serez enregistré, vous pourrez souscrire à n'importe quelle mise à jour ici

Par flux RSS :

Réponses

Réponses et commentaires

Bases de Markdown

  • *italique* ou _italique_
  • **gras** ou __gras__
  • Lien ::[texte](http://url.com/ "Titre ")
  • Image : ?![alt texte](/path/img.jpg "Titre ")
  • Liste numérotée : 1. Foo 2. Bar
  • Pour ajouter un passage à la ligne, ajoutez deux espaces à l'endroit où vous souhaitez que la ligne commence.
  • Les balises HTML de base sont également prises en charge.