Las capas no funcionan en una imagen "superpuesta"

Las capas no funcionan en una imagen "superpuesta"

Tengo los dos siguientes tikzpicture, donde el segundo necesita el overlay. Sin embargo, con esa opción, la línea trazada desde Ahasta Cpasa por B, a pesar de \begin{pgfonlayer}{back}…\end{pgfonlayer}. ¿Qué puedo hacer para que la línea aparezca debajo de B (aparte de volver a dibujar B después, lo cual no es práctico ya que tiene un desplazamiento x e y aleatorio)?

ejemplo mínimo

\documentclass{article}
\usepackage{tikz}
\pgfdeclarelayer{back}
\pgfsetlayers{back,main}
\begin{document}

\begin{tikzpicture}[remember picture]
  \node[draw=red!50,  fill=red!10]   (A) at (0,0) {A};
  \node[draw=green!50,fill=green!10] (B) at (1,0) {B};
  \node[draw=blue!50, fill=blue!10]  (C) at (2,0) {C};
\end{tikzpicture}

\begin{tikzpicture}[remember picture, overlay]
  \begin{pgfonlayer}{back}
    \draw (A) -- (C);
  \end{pgfonlayer}
\end{tikzpicture}

\end{document}

Un ejemplo más completo que justifica el uso de remember picturey overlay:

Ejemplo completo

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{matrix,chains,trees}
\pgfdeclarelayer{back}
\pgfsetlayers{back,main}
\begin{document}

\begin{figure}[h]
  \centering
  \begin{tikzpicture}[remember picture]
    \matrix[matrix of nodes, every node/.style={anchor=center}] {
      \begin{tikzpicture}[start chain=going below, every node/.style={on chain}]
        \node[draw=red!50,  fill=red!10]   (A1) {A};
        \node[draw=red!50,  fill=red!10]   (A2) {AA};
        \node[draw=red!50,  fill=red!10]   (A3) {AAA};
      \end{tikzpicture} &
      \begin{tikzpicture}[grow cyclic, sibling angle=360/7, edge from parent/.style={draw=none}]
        \node {} child foreach \i in {1,...,7} {
          node[draw=green!50,fill=green!10] {B\i};
        };
      \end{tikzpicture} &
      \begin{tikzpicture}[start chain=going below, every node/.style={on chain}]
        \node[draw=blue!50, fill=blue!10]  (C1) {C};
        \node[draw=blue!50, fill=blue!10]  (C2) {C};
      \end{tikzpicture} \\
      Label A & Label B & Label C\\
    };
  \end{tikzpicture}
  \caption{Foo}
\end{figure}

\begin{tikzpicture}[remember picture, overlay]
  \begin{pgfonlayer}{back}
    \draw[thick] (A1) -- (C2);
  \end{pgfonlayer}
\end{tikzpicture}

\end{document}

Respuesta1

Las capas son locales para cada imagen. En otras palabras: su declaración onlayer no tiene efecto; necesitarías separar capas dentro de unsolteroimagen.

información relacionada