Factor de escala del xtick de pgfplot con máscara

Factor de escala del xtick de pgfplot con máscara

Un factor de escala factorpara xticks no funciona con la máscara ldots .... ¿El problema tiene solución?

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

Respuesta1

Es necesario configurarlo /pgf/foreach/parse=true, consulte la pág. 989 de pgfmanual v3.1.4

ingrese la descripción de la imagen aquí

Esto funciona (al menos en este 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}

ingrese la descripción de la imagen aquí

Déjame mencionarte que recomiendo no excederte con parse=true, hay casos con números enteros en los que tuve algunas dificultades.

En caso de que encuentre problemas con esta propuesta porque algún otro bucle, quizás interno, cause problemas: también puede usar xtickminy xtickmax, cuyos valores se analizan automáticamente.

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

información relacionada