
МВЭ:
\documentclass[]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.12}
\usetikzlibrary{plotmarks}
\begin{document}
\begin{tikzpicture}
\begin{axis}
\addplot[mark=*] coordinates
{(0,0)};
\node[blue] at (0,0) {\pgfuseplotmark{*}};
\end{axis}
\end{tikzpicture}
\begin{tikzpicture}
\begin{axis}
\addplot[mark=pentagon*] coordinates
{(0,0)};
\node[red] at (0,0) {\pgfuseplotmark{pentagon*}};
\end{axis}
\end{tikzpicture}
\end{document}
Как вы можете видеть на первой картинке, оба маркера находятся в одном и том же положении, но не во второй. Что мне нужно сделать, чтобы получить такое же расположение маркера в узле, как тот, который нанесен на график \addplot
?
Обновлять: Номера версий из файла журнала:
Package: pgfplots 2015/05/02 v1.12.1 Data Visualization (1.12.1)
Package: pgf 2013/12/18 v3.0.0 (rcs-revision 1.14)
File: pgflibraryplotmarks.code.tex 2013/07/20 v3.0.0 (rcs-revision 1.13)
Другие вопросы (это более или менее дубликат):
- Почему \pgfuseplotmark оставляет так много места слева от метки?(см. самое главное это!)
- Метки TikZ смещены на 0,05 по оси x.
решение1
Это связано с тем, что метки в PGF подготовлены для использования внутри инструкций по рисованию. Они не подготовлены для использования в текстовом режиме.
Если вы хотите использовать инструкции по рисованию в текстовом режиме, вам необходимо окружить их рисунком, например, следующим образом:
\documentclass[]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.12}
\usetikzlibrary{plotmarks}
\begin{document}
\begin{tikzpicture}
\begin{axis}
\addplot[mark=pentagon*] coordinates
{(0,0)};
\node[red] at (0,0) {\tikz \pgfextra{\pgfuseplotmark{pentagon*}};};
\end{axis}
\end{tikzpicture}
\end{document}