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:
| Pacchetto | Comandi | In Scissor LaTeX |
|---|---|---|
| algorithm | ambiente algorithm, \caption, \label | Funziona: 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
\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.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}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}
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
\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.