En LaTeX podemos escribir pequeños algoritmos en pseudocódigo, con el paquete "algpseudocode". A continuación un ejemplo con una sentencia if-else:
\usepackage{algpseudocode}
\begin{algorithmic}
\If{you love me}
\State{kiss me!}
\ElsIf{you like me}
\State{kiss me!}
\Else
\State{kiss me?}
\EndIf
\end{algorithmic}
LaTeX se encarga de poner la negrita, los tabuladores y los "then". Los bucles for y while se pueden hacer también muy fácil, como muestro a continuación. Además, si quieres numerar las líneas, bastaría con poner "[x]" al inicio del algoritmo. Las filas se van numerando de "x" en "x".
\begin{algorithmic}[1]
\For {1000 veces}
\State{¿Hemos llegado ya?}
\EndFor
\end{algorithmic}
\begin{algorithmic}
\While {te apetezca \textbf{and} tengas tiempo}
\State{ven a verme}
\EndWhile
\end{algorithmic}
Si quieres meter el código dentro de un cuadro, puedes usar por ejemplo, la función {minipage}, como muestro a continuación:
\noindent\fbox{
\begin{minipage}{0.5\textwidth}
\begin{algorithmic}[1]
\For {1:100}
\State{kiss me}
\EndFor
\end{algorithmic}
\end{minipage}
}
Otra forma más sencilla de escribir código de programación es usando el paquete {verbatim}. Todo lo que escribamos entre "\begin{verbatim}" y "\end{verbatim}" se mostrará tal cual. Es decir, si ponemos un intro o varios espacios, aparecerán igual en nuestro archivo final. Además, el estilo de la letra es como de máquina de escribir.
\usepackage{verbatim}
\begin{verbatim}
x = 0
FOR i=1:1000
x = x + i;
END
\end{verbatim}
5 comentarios:
Existe alguna forma de encerrar en un cuadro el pseudo-código como en el caso \begin{lstlisting}[frame=single]?
Hola Francisco,
se puede hacer con minipage y parbox. Acabo de modificar la entrada mostrando cómo.
Hasta luego
Muchas gracias Luis. Excelente ayuda este blog...
Yo, por mi parte hice lo siguiente:
\begin{algorithm}
\caption{Algoritmo bonito}
\label{Alg1}
\begin{algorithmic}[1]
\State $ \mathbf{K}_{rows} $
\For {each element $ e $ in $ nel
\EndFor
\end{algorithmic}
\end{algorithm}
Queda muy bonito, se puede referenciar, numerar, etc
Hola Francisco, genial. Muchas gracias.
Estimados, no encuentro como y donde bajar ese paquete,
Publicar un comentario