Código de programación en nuestro documento LaTeX

Ya que LaTeX es una herramienta específica para textos técnicos y científicos, es muy común que queramos añadir unas líneas de programación. Para ello, podemos utilizar el paquete listings. En primer lugar, nuestro archivo .tex será parecido al siguiente:

documentclass[a4paper,onecolumn,10pt]{article}
usepackage[spanish]{babel}
usepackage[latin1]{inputenc}
usepackage{listings}

begin{document}

end{document}


Escribimos nuestras líneas de código entre begin{lstlisting} end{lstlisting}, como se muestra en el ejemplo siguiente. Además, podemos definir una serie de propiedades: 
  • language=…, define el lenguaje de programación. No es fundamental elegirlo, pero el formato del texto se ajusta al código usado.
  • breaklines=true, para que si una línea es muy larga, la pase automáticamente al siguiente renglón.
  • basicstyle=…, define el tamaño del texto. 
  • frame=single, encierra el código en una caja. 

Ejemplo con C:

lstset{language=C, breaklines=true, basicstyle=footnotesize}
begin{lstlisting}[frame=single]

#include
#include
// programa muy positivo

void main{
  system(«clear»);
  printf(«Hola mundo!n»);
}

end{lstlisting}


Podemos numerar las líneas de nuestro código con el comando «stepnumber=x», (donde x significa cada cuántas líneas numeramos) como se muestra a continuación:

Ejemplo con Matlab:

lstset{language=Matlab, breaklines=true, basicstyle=footnotesize}
lstset{numbers=left, numberstyle=tiny, stepnumber=1, numbersep=-2pt}
begin{lstlisting}[frame=single]
  % suma de los elementos de un vector

  z = 0;
  n = length(v);
  for i=1:1:n
    z = z + v[i];
  end
end{lstlisting}

Además, hemos definido la posición de la numeración con «numbers», el tamaño con «numberstyle», y la sangría con «numbersep».


Las propiedades definidas dentro de lstset{}, valen para todo nuestro documento. Es decir, solo es necesario definirlas una vez, a no ser que queramos usar distintas propiedades cada vez que añadimos el código de programación. Por ejemplo, si a continuación, queremos dejar de numerar las líneas, habría que escribir: «stepnumber=0». Nótese también que, aunque hay muchos lenguajes incorporados a lstlisting, no están todos. Cuando escribimos en un lenguaje que no está definido, lo mejor es poner «language=», para que no use ninguno.
Ejemplo con Modelica:

lstset{language=,breaklines=true, basicstyle=footnotesize}
lstset{stepnumber=0}
begin{lstlisting}[frame=single]
model test
 Real x(start=5) «variable»;

equation
 der(x) = -0.1*x;
end test;
end{lstlisting}

end{document}

Deja un comentario