Масштабный коэффициент xtick pgfplot с маской

Масштабный коэффициент xtick pgfplot с маской

Масштабный коэффициент factorдля xticks не работает с маской ldots .... Есть ли решение проблемы?

\documentclass[tikz]{standalone}
\usepackage{pgfplots}


%===============================================================================
\begin{document}
\noindent
\begin{tikzpicture}[
    declare function ={
        factor=2;
    }
    ]
    \begin{axis}[
        %xtick = {-2*factor,2*factor}, % This one work
        %xtick = {-2,...,2}, % This one work
        xtick = {-2*factor,...,2*factor}, % This one doesn't work
        ]
        \addplot+[blue, no marks, domain={-6:6}] {x^2};
    \end{axis}
\end{tikzpicture}


\end{document}

решение1

Вам необходимо установить /pgf/foreach/parse=true, см. стр. 989 pgfmanual v3.1.4

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

Это работает (по крайней мере, в этом случае).

\documentclass[tikz]{standalone}
\usepackage{pgfplots}

%===============================================================================
\begin{document}
\noindent
\begin{tikzpicture}[/pgf/foreach/parse=true,%<-added
    declare function ={
        factor=2;
    }
    ]
    \begin{axis}[
        %xtick = {-2*factor,2*factor}, % This one work
        %xtick = {-2,...,2}, % This one work
        xtick={-2*factor,...,2*factor}, % This one works now
        ]
        \addplot+[blue, no marks, domain={-6:6}] {x^2};
    \end{axis}
\end{tikzpicture}
\end{document}

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

Хочу отметить, что я рекомендую не переусердствовать с parse=true, есть случаи с целыми числами, в которых у меня возникли некоторые трудности.

На всякий случай, если у вас возникнут проблемы с этим предложением из-за того, что какой-то другой, возможно, внутренний цикл вызовет проблемы: вы также можете использовать xtickminи xtickmax, значения которых будут автоматически проанализированы.

\documentclass[tikz]{standalone}
\usepackage{pgfplots}

%===============================================================================
\begin{document}
\noindent
\begin{tikzpicture}[
    declare function ={
        factor=2;
    }
    ]
    \begin{axis}[
        xtickmin=-2*factor,
        xtickmax=2*factor,
        ]
        \addplot+[blue, no marks, domain={-6:6}] {x^2};
    \end{axis}
\end{tikzpicture}
\end{document}

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