Aller au contenu

Algorithmes et pseudo-code

Placez le pseudo-code dans un environnement algorithm avec un \caption pour obtenir « Algorithme 1 » ; à l’intérieur, Scissor LaTeX ne lit les commandes en majuscules d’algorithmic (\STATE, \FOR) que dans les mises en page de conférence : pour les autres documents, mettez les étapes dans un bloc verbatim.

L’environnement algorithm

Le package algorithm fournit un environnement numéroté pour le pseudo-code, comme une figure : un \caption lui donne un numéro (« Algorithme 1 »), et un \label placé après la légende permet d’y renvoyer avec \ref. Dans Scissor LaTeX, l’algorithme reste là où vous l’écrivez et sa légende est placée en dessous.

Ce que vous mettez à l’intérieur dépend du package choisi pour les étapes, et c’est là que la prise en charge varie :

PackageCommandesDans Scissor LaTeX
algorithmenvironnement algorithm, \caption, \labelFonctionne : « Algorithme N » numéroté, légende en dessous.
algorithmic\STATE, \IF, \FOR, \WHILE, \RETURN ... (majuscules)En partie : lues uniquement dans les documents avec une mise en page de conférence ; ailleurs, ce sont des commandes inconnues.
algpseudocode (algorithmicx)\State, \If, \For, \EndFor, \Return ...Non pris en charge : ignorées avec un message, et les étapes se suivent sur une seule ligne.
algorithm2e\KwIn, \For{..}{..}, \eIf ...Non pris en charge : ignorées avec un message.

Du pseudo-code qui fonctionne partout

Le moyen le plus fiable d’afficher du pseudo-code dans n’importe quel document Scissor LaTeX est un bloc verbatim à l’intérieur de algorithm. Vous gardez le numéro et la légende, et les lignes conservent leur indentation.

Un algorithme avec des étapes en verbatim

LaTeXPréambule : \usepackage{algorithm}Ouvrir dans l'éditeur (s’ouvre dans un nouvel onglet)
\begin{algorithm}
\caption{Sum of a list}
\label{alg:sum}
\begin{verbatim}
s := 0
for each a in xs:
    s := s + a
return s
\end{verbatim}
\end{algorithm}
Algorithm~\ref{alg:sum} adds the numbers of a list.
Composé par Scissor LaTeX: Un algorithme avec des étapes en verbatim

Pour du pseudo-code avec des formules, un lstlisting fonctionne de la même façon ; vous pouvez aussi écrire les étapes comme du texte ordinaire hors de l’environnement algorithm, sous forme de liste numérotée.

Les étapes en liste numérotée, avec des maths

\textbf{Input:} numbers $a_1, \dots, a_n$.
\begin{enumerate}
  \item Set $s \gets 0$.
  \item For $i = 1, \dots, n$: set $s \gets s + a_i$.
  \item Return $s$.
\end{enumerate}
Composé par Scissor LaTeX: Les étapes en liste numérotée, avec des maths

algorithmic dans les mises en page de conférence

Les mises en page qui imitent celles des conférences (arXiv, IEEE, NeurIPS, ICML et les autres) lisent les commandes en majuscules du package algorithmic : les mots-clés comme for, do, end for et return sont en gras, et chaque commande commence une nouvelle ligne. Les numéros de ligne ne sont pas affichés et les lignes sont centrées. L’onglet Problèmes indique la mise en page utilisée.

algorithmic dans un document de style arXiv

\documentclass{article}
\usepackage{arxiv}
\usepackage{algorithm,algorithmic}
\begin{document}
\begin{algorithm}
\caption{Sum of a list}
\begin{algorithmic}
\STATE $s \gets 0$
\FOR{$i = 1$ to $n$}
  \STATE $s \gets s + a_i$
\ENDFOR
\RETURN $s$
\end{algorithmic}
\end{algorithm}
\end{document}
Composé par Scissor LaTeX: algorithmic dans un document de style arXiv

Onglet Problèmes : Layout in the style of the arXiv preprint style (final mode). Not official. To compile elsewhere, add arxiv.sty from github.com/kourgeorge/arxiv-style.

algpseudocode n’est pas pris en charge

algpseudocode, le package le plus courant dans les articles récents, utilise des commandes en casse mixte comme \State et \EndFor. Scissor LaTeX ne les connaît pas : leurs noms sont ignorés, les formules et les mots sont conservés, et tout se suit sur une seule ligne. L’onglet Problèmes liste les commandes ignorées.

algpseudocode : les étapes se suivent sur une ligne

LaTeXPréambule : \usepackage{algorithm,algpseudocode}Ouvrir dans l'éditeur (s’ouvre dans un nouvel onglet)
\begin{algorithm}
\caption{Sum of a list}
\begin{algorithmic}[1]
\State $s \gets 0$
\For{$i = 1$ to $n$}
  \State $s \gets s + a_i$
\EndFor
\State \Return $s$
\end{algorithmic}
\end{algorithm}

Onglet Problèmes : Skipped 4 unknown commands: \State, \For, \EndFor, \Return

Si le document doit fonctionner à la fois ici et dans une installation TeX, écrivez les étapes en verbatim comme ci-dessus : cela se compile partout.

Différences avec une installation TeX

La page du package est algorithm, algorithmic et algpseudocode. Les manuels se trouvent sur CTAN : algorithms, algorithmicx et algorithm2e.

Voir aussi packages d’algorithmes, Listings de code et Mises en page de conférence.

Questions et réponses

Comment écrire un algorithme en LaTeX ?

Utilisez l’environnement algorithm avec un \caption, et placez les étapes à l’intérieur. Dans Scissor LaTeX, les étapes fonctionnent le mieux dans un bloc verbatim, ou avec les commandes \STATE d’algorithmic dans une mise en page de conférence.

Pourquoi mes lignes \State se suivent-elles sur une seule ligne ?

\State vient d’algpseudocode, que Scissor LaTeX ne prend pas en charge. Les noms de commandes sont ignorés, et les étapes se rejoignent donc sur une ligne. Utilisez plutôt verbatim pour les étapes.

Puis-je renvoyer à un algorithme par son numéro ?

Oui. Placez \label{alg:name} après le \caption et écrivez Algorithm~\ref{alg:name}.

Chaque exemple de cette page est composé par Scissor LaTeX lors de la génération du site. Dernière mise à jour : 2026-11-07.