Fator de escala do xtick do pgfplot com máscara

Fator de escala do xtick do pgfplot com máscara

Um fator de escala factorpara xticks não funciona com ldots mask .... O problema tem solução?

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

Responder1

Você precisa definir /pgf/foreach/parse=true, consulte a pág. 989 do pgfmanual v3.1.4

insira a descrição da imagem aqui

Isso funciona (pelo menos neste caso).

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

insira a descrição da imagem aqui

Deixe-me mencionar que recomendo não exagerar parse=true, há casos com números inteiros em que tive algumas dificuldades.

Caso você encontre problemas com esta proposta porque algum outro loop, talvez interno, causa problemas: você também pode usar xtickminand xtickmax, cujos valores são analisados ​​automaticamente.

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

informação relacionada