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 <stdio.h>#include <stdlib.h>
// 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}
\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}