Vai al contenuto

Algoritmi e pseudocodice

Racchiudi lo pseudocodice in un ambiente algorithm con un \caption per ottenere "Algorithm 1"; al suo interno Scissor LaTeX legge i comandi maiuscoli di algorithmic (\STATE, \FOR) solo nei layout da conferenza, quindi negli altri documenti metti i passi in un blocco verbatim.

L’ambiente algorithm

Il pacchetto algorithm fornisce un ambiente numerato per lo pseudocodice, come una figura: un \caption gli assegna un numero ("Algorithm 1") e un \label dopo la didascalia ti permette di richiamarlo con \ref. In Scissor LaTeX l’algoritmo resta dove lo scrivi e la sua didascalia viene posta sotto.

Ciò che va all’interno dipende dal pacchetto che usi per i passi, ed è lì che il supporto cambia:

PacchettoComandiIn Scissor LaTeX
algorithmambiente algorithm, \caption, \labelFunziona: numerato "Algorithm N", didascalia sotto.
algorithmic\STATE, \IF, \FOR, \WHILE, \RETURN ... (maiuscoli)In parte: letti solo nei documenti con un layout da conferenza; altrove sono comandi sconosciuti.
algpseudocode (algorithmicx)\State, \If, \For, \EndFor, \Return ...Non supportato: ignorato con un messaggio, e i passi finiscono tutti su una riga.
algorithm2e\KwIn, \For{..}{..}, \eIf ...Non supportato: ignorato con un messaggio.

Pseudocodice che funziona ovunque

Il modo più affidabile per mostrare pseudocodice in qualsiasi documento di Scissor LaTeX è un blocco verbatim dentro algorithm. Mantieni il numero e la didascalia, e le righe conservano il loro rientro.

Un algoritmo con passi in verbatim

LaTeXPreambolo: \usepackage{algorithm}Apri nell'editor (si apre in una nuova scheda)
\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.
Composto da Scissor LaTeX: Un algoritmo con passi in verbatim

Per lo pseudocodice con formule, un lstlisting funziona allo stesso modo; in alternativa scrivi i passi come testo normale fuori dall’ambiente algorithm, sotto forma di elenco numerato.

Passi come elenco numerato, con matematica

\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}
Composto da Scissor LaTeX: Passi come elenco numerato, con matematica

algorithmic nei layout da conferenza

I layout che imitano quelli delle conferenze (arXiv, IEEE, NeurIPS, ICML e gli altri) leggono i comandi maiuscoli del pacchetto algorithmic: parole chiave come for, do, end for e return sono in grassetto, e ogni comando inizia una nuova riga. I numeri di riga non vengono disegnati e le righe sono centrate. La scheda Problemi indica il layout in uso.

algorithmic in un documento in stile 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}
Composto da Scissor LaTeX: algorithmic in un documento in stile arXiv

Scheda Problemi: 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 non è supportato

algpseudocode, il pacchetto più diffuso negli articoli recenti, usa comandi con maiuscole e minuscole come \State e \EndFor. Scissor LaTeX non li conosce: i loro nomi vengono ignorati, formule e parole vengono mantenute, e tutto finisce su una sola riga. La scheda Problemi elenca i comandi ignorati.

algpseudocode: i passi finiscono su una riga

LaTeXPreambolo: \usepackage{algorithm,algpseudocode}Apri nell'editor (si apre in una nuova scheda)
\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}

Scheda Problemi: Skipped 4 unknown commands: \State, \For, \EndFor, \Return

Se il documento deve funzionare sia qui sia in un’installazione TeX, scrivi i passi in verbatim come mostrato sopra: si compila ovunque.

Cosa cambia rispetto a un’installazione TeX

La pagina del pacchetto è algorithm, algorithmic e algpseudocode. I manuali sono su CTAN: algorithms, algorithmicx e algorithm2e.

Vedi anche pacchetti per algoritmi, Listati di codice e Layout da conferenza.

Domande e risposte

Come si scrive un algoritmo in LaTeX?

Usa l’ambiente algorithm con un \caption e metti i passi al suo interno. In Scissor LaTeX i passi funzionano meglio in un blocco verbatim, oppure con i comandi \STATE di algorithmic in un layout da conferenza.

Perché le mie righe \State finiscono tutte insieme?

\State proviene da algpseudocode, che Scissor LaTeX non supporta. I nomi dei comandi vengono ignorati, quindi i passi si uniscono in una sola riga. Usa invece verbatim per i passi.

Posso richiamare un algoritmo con il suo numero?

Sì. Metti \label{alg:name} dopo il \caption e scrivi Algorithm~\ref{alg:name}.

Ogni esempio di questa pagina viene composto da Scissor LaTeX quando il sito viene generato. Ultimo aggiornamento: 2026-11-07.