Ссылки на линии, стили которых заданы с помощью \pgfplotsset

Ссылки на линии, стили которых заданы с помощью \pgfplotsset

В примере MWE ниже, похоже, что стиль линии для ссылки установлен неправильно (на графике круги не заполнены, но при ссылке на них они заполняются).

Я что-то делаю не так? Или это ошибка? Если да, то есть ли обходной путь? Кроме как задать стиль вручную для всех строк в моем документе.

\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}

решение1

См. раздел 4.7.1 руководства pgfplots, где говорится, что "Каждый стиль записи графика оси может быть использован для перезаписи частей (или всех) стилей рисования, которые назначены для графиков". См. также раздел 4.5.12, где подробно описана последовательность. Итак, суть в том, что если вы удалите директиву post,

\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}

введите описание изображения здесь

Связанный контент