El bucle for está “atascado” dentro de un pgfplot.
Estoy intentando producir algunos gráficos en LaTeX utilizando pgfplots; debido al hecho de que tengo varios gráficos diferentes que producir, estoy tratando de usar un bucle for. Desafortunadamente, sin éxito. De hecho, el código se ejecuta tres veces pero el valor de la variable del bucle for siempre es igual al primer valor de la lista que define el bucle.
Por ejemplo, el siguiente código mínimo
\documentclass[a4paper, 11pt]{article}
\usepackage{pgfplots}
\pgfplotsset{compat=1.13}
\usepgfplotslibrary{groupplots}
\begin{document}
\makeatletter
\begin{tikzpicture}
\begin{groupplot}[group style={group size= 2 by 3}]
\@for\refin:={1,2,3}\do{%
\nextgroupplot[ylabel={$h = \frac{1}{\refin}$}]
\addplot {exp(x)};
\nextgroupplot
\addplot{2 * x};
}
\end{groupplot}
\end{tikzpicture}
\makeatother
\end{document}
produce una figura con 6 gráficos (como se esperaba) pero la etiqueta siempre es 1/1 y nunca 1/2 o 1/3. ¿Por qué?
davy.ai
El problema es que la variable
\refin
se asigna solo el primer valor de la lista una vez al principio del bucle for. Para usar el valor actual de\refin
dentro del bucle, debe ser expandido con\expandafter
antes de usarlo en la etiqueta del gráfico.El código corregido debería verse así:
Esto debería producir una figura con 6 gráficos, cada uno con la etiqueta correcta.