Hacer referencia a líneas cuyos estilos se establecen usando \pgfplotsset

Hacer referencia a líneas cuyos estilos se establecen usando \pgfplotsset

En el siguiente ejemplo de MWE, parece que el estilo de línea para la referencia no está configurado correctamente (en el gráfico, los círculos no están rellenos, pero sí lo están al hacer referencia a ellos).

¿Estoy haciendo algo mal? ¿O es esto un error? Si es así, ¿hay alguna solución? Aparte de configurar el estilo manualmente para todas las líneas de mi documento.

\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\pgfplotsset{
  every axis plot/.append style={thick, black},
  every axis plot post/.append style={
    every mark/.append style={mark size=3,solid,fill opacity=0}
  }
}

\begin{document}
Why is this marker \ref{myline} different but this one
\ref{myline-correct} is correct?

\begin{tikzpicture}
  \begin{axis}
    \addplot[mark=*]
    table [x=x, y=y]{%
      x y
      0 0
      1 1
      2 2
      3 3
      4 4
    };
    \label{myline}

    \addplot[mark=square, mark size=3,solid,fill opacity=0]
    table [x=x, y=y]{%
      x y
      4 0
      3 1
      2 2
      1 3
      0 4
    };
    \label{myline-correct}
  \end{axis}
\end{tikzpicture}
\end{document}

Respuesta1

Consulte la sección 4.7.1 del manual de pgfplots, donde dice que "El estilo de publicación del trazado de cada eje se puede utilizar para sobrescribir partes (o todos) de los estilos de dibujo asignados para los trazados". Ver también el apartado 4.5.12, donde se detalla la secuencia. Así que la conclusión es que si se abandona la postdirectiva,

\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\pgfplotsset{
  every axis plot/.append style={thick, black},
  every axis plot/.append style={
    every mark/.append style={mark size=3,solid,fill opacity=0}
  }
}

\begin{document}
Now both the marker \ref{myline} and \ref{myline-correct} are correct?

\begin{tikzpicture}
  \begin{axis}
    \addplot[mark=*]
    table [x=x, y=y]{%
      x y
      0 0
      1 1
      2 2
      3 3
      4 4
    };
    \label{myline}

    \addplot[mark=square, mark size=3,solid,fill opacity=0]
    table [x=x, y=y]{%
      x y
      4 0
      3 1
      2 2
      1 3
      0 4
    };
    \label{myline-correct}
  \end{axis}
\end{tikzpicture}
\end{document}

ingrese la descripción de la imagen aquí

información relacionada