profile image

Estelle Scifo

(Graph) Data Scientist & Python developer

Using loops to simplify your LaTeX documents

February 12, 2019

I often fall into the case where I want to create some slides showing the same plots for different scenarios, e.g. for different users. In those cases, you just need a coherent naming conventions for your plots, for instance:

Figures/
    1/
	    plot.png
		hist.png
	2/
		plot.png
		hist.png
    ....
	10/
		plot.png
		hist.png

Then, the magic of pgffor enters into the game. Like in any other language (almost), you can use a for loop in a latex document. Minimal Working Example:

\documentclass{beamer}
\usepackage{pgffor}
 
\begin{document}

\foreach \n in {0,...,9}{
    \begin{frame}{Driver example \n }
		\begin{columns}
			\begin{column}{0.5\textwidth}\centering\small
			Plot \\
			\includegraphics[width=\textwidth]{Figures/\n /plot.png}
			\end{column}
			\begin{column}{0.5\textwidth}\centering\small
			Hist \\
			\includegraphics[width=\textwidth]{Figures/\n /hist.png}
			\end{column}
		\end{columns}
	\end{frame}
}
 
\end{document}

If even works for “list of strings”:

\foreach \n in {varibleA,
                varB,
                VariableC} {
    \n
}

No more excuses to have the distribution of variable A on the slide named ` B`!