
Al utilizarlo, algorithmicx
es bastante fácil activar o desactivar la numeración de líneas o numerar cada enésima línea. Tomando este MWE (tomado del documento)
\documentclass{article}
\usepackage{algpseudocode}
\usepackage{algorithm}
\begin{document}
\begin{algorithm}[H]
\caption{Euclide's algorithm}\label{euclid}
\begin{algorithmic}[5]
\Procedure{Euclide}{$a,b$}\Comment{The g.c.d. of a and b}
\State $r\gets a\bmod b$
\While{$r\not=0$}\Comment{We have the answer if r is 0}
\State $a\gets b$
\State $b\gets r$
\State $r\gets a\bmod b$
\EndWhile\label{euclidendwhile}
\State \Return $b$\Comment{The gcd is b}
\EndProcedure
\end{algorithmic}
\end{algorithm}
\end{document}
En este ejemplo, la primera línea numerada es la quinta. ¿Hay alguna manera de activar la numeración en la primera línea?
Pregunta posterior, ¿es posible cambiar la numeración en cualquier línea arbitraria?
Respuesta1
Tendrás que actualizar una macro específica para cambiar la condición de impresión:
\documentclass{article}
\usepackage{algpseudocode,algorithm}
\makeatletter
\def\ALG@step%
{%
\stepcounter{ALG@line}%
\stepcounter{ALG@rem}%
\ifnum\value{ALG@line}=1
% Print line number if it is 1
\alglinenumber{\arabic{ALG@line}}%
\else\ifnum\value{ALG@rem}=\ALG@numberfreq
% Print line number if the ALG@rem = \ALG@numberfreq
\setcounter{ALG@rem}{0}\alglinenumber{\arabic{ALG@line}}%
\fi\fi
}%
\makeatother
\begin{document}
\begin{algorithm}[H]
\caption{Euclide's algorithm}\label{euclid}
\begin{algorithmic}[5]
\Procedure{Euclide}{$a,b$}\Comment{The g.c.d.\ of~$a$ and~$b$}
\State $r \gets a \bmod b$
\While{$r \neq 0$}\Comment{We have the answer if~$r$ is~$0$}
\State $a \gets b$
\State $b \gets r$
\State $r \gets a \bmod b$
\EndWhile\label{euclidendwhile}
\State \Return $b$\Comment{The g.c.d.\ is~$b$}
\EndProcedure
\end{algorithmic}
\end{algorithm}
\end{document}
El ajuste \ALG@step
inserta una condición para verificar si el número de línea es 1 e imprimir en consecuencia.
En general, sería posible activar la numeración en cualquier línea arbitraria, pero el código no está configurado para eso.