Referenciando linhas cujos estilos são definidos usando \pgfplotsset

Referenciando linhas cujos estilos são definidos usando \pgfplotsset

No exemplo MWE abaixo, parece que o estilo de linha para a referência não está definido corretamente (no gráfico, os círculos não são preenchidos, mas são preenchidos ao referenciá-los).

Estou fazendo algo errado? Ou isso é um bug? Em caso afirmativo, existe uma solução alternativa? Além de definir o estilo manualmente para todas as linhas do meu 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}

Responder1

Consulte a seção 4.7.1 do manual pgfplots, onde diz que "O estilo de postagem de plotagem de cada eixo pode ser usado para substituir partes (ou todos) dos estilos de desenho atribuídos às plotagens.". Veja também a seção 4.5.12, onde a sequência é detalhada. Portanto, o resultado final é que se abandonarmos a 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}

insira a descrição da imagem aqui

informação relacionada