In this guide, you’ll learn how to write for loop in LaTeX using the three most popular packages.
Essential Packages for Writing Algorithms
When writing a research paper, thesis, or report, you often need to present algorithms. LaTeX provides several packages to write pseudocode in a clean, professional way. Among them, the three most widely used are:
algorithmic
packagealgorithm2e
packagealgpseudocode
package (part of algorithmicx)
In this tutorial, you’ll see for loop and nested loop examples with each package.
The algorithmic package
In this package, you can write a loop using the commands \FOR ... \ENDFOR
.
\FOR{$i = 1$ to $10$} \STATE Print $i$ \ENDFOR
\FOR{...}
-
Inside the braces, you specify the loop condition.
For example:i = 1 \; to \; 10
means thati
will run from 1 to 10. \STATE
-
Represents an action or a single step in the algorithm.
Example:\State Print(i)
prints the value ofi
. \ENDFOR
-
Marks the end of the loop. It works the same way as curly braces
{ }
in programming languages.
\documentclass{article}
\usepackage{algorithm}
\usepackage{algorithmic}
\begin{document}
\begin{algorithm}
\caption{Simple for loop Example}
\begin{algorithmic}
\FOR{$i = 1$ to $10$}
\STATE Print $i$
\ENDFOR
\end{algorithmic}
\end{algorithm}
\end{document}
The algorithm2e package
This one is very popular because its syntax looks almost exactly like real programming.
\For{$i \gets 1$ \KwTo $10$}{ Print $i$\; }
\For{...}{...}
-
The first
{...}
defines the loop condition (what the loop runs over), and the second{...}
contains the actual body of the loop. $i \gets 1$
-
This means i starts from 1. (Here,
\gets
is a neat symbol for assignment.) \KwTo
- This means “to,” indicating the range. So the loop continues up to 10.
\;
- This is used at the end of each line, just like a semicolon in programming.
\documentclass{article}
\usepackage[linesnumbered,ruled,vlined]{algorithm2e}
\begin{document}
\begin{algorithm}
\caption{Example with Algorithm2e}
\For{$i \gets 1$ \KwTo $10$}{
Print $i$\;
}
\end{algorithm}
\end{document}
The algpseudocode package
This package is actually a part of algorithmicx
. The code written with it looks much more readable and easy to follow.
\For{$i = 1$ to $10$} \State Print $i$ \EndFor
\For{...}
-
This starts the for loop. Here, the condition is written as
$i = 1$ to $10$
. \State
- This is used to describe what action will be performed inside the loop.
\EndFor
- This marks the end of the loop.
\documentclass{article}
\usepackage{algorithm}
\usepackage{algpseudocode}
\begin{document}
\begin{algorithm}
\caption{Example with Algpseudocode}
\begin{algorithmic}
\For{$i = 1$ to $10$}
\State Print $i$
\EndFor
\end{algorithmic}
\end{algorithm}
\end{document}
Nested for Loop Example
A nested loop means running one loop inside another. I’m showing you the syntax of nested loops using three different LaTeX algorithm packages.
% Algorithmic \FOR{$i = 1$ to $3$} \FOR{$j = 1$ to $2$} \STATE Print $i, j$ \ENDFOR \ENDFOR % Algorithm2e \For{$i \gets 1$ \KwTo $3$}{ \For{$j \gets 1$ \KwTo $2$}{ Print $i, j$\; } } % Algpseudocode \For{$i = 1$ to $3$} \For{$j = 1$ to $2$} \State Print $i, j$ \EndFor \EndFor
Final Note
If you want your research paper/thesis to look professional, pick algorithm2e
or algpseudocode
. Always keep formatting consistent and avoid mixing packages.