El por qué de este blog

Con el cambio de milenio me dijeron un día que tenía que aprender a usar LaTeX, y yo pensé... ezo qué e! A día de hoy sé hacer alguna que otra cosa con este editor de textos científicos y mi intención es compartir mi experiencia con todo aquel que pueda estar interesado.

miércoles, 22 de enero de 2014

Organización de documentos extensos: clase BOOK

Si bien LaTeX nace con el propósito concreto de escribir textos en los que predominan las fórmulas matemáticas, no es menos cierto que su utilidad ha sobrepasado todas las expectativas y ofrece la posibilidad de componer documentos con calidad comparable a la de una editorial.

En este post abordaremos cómo crear un libro. Muchos pensaréis que simplemente es declarar que el tipo de documento sea book, y no os falta razón. Pero crear un libro es mucho más que eso. Su extensión nos obliga a tener especial cuidado con su organización, por ejemplo.

En este enlace tenéis un ejemplo de lo que podría ser un documento base para escribir una tesis doctoral (aquí el código fuente).

Debido a su extensión se ha de organizar el documento de forma diferente a la hecha hasta ahora, además de aparecer nuevos elementos:
  • En primer lugar nos encontramos con la portada, la cual se obtiene al usar el entorno titlepage:
 \begin{titlepage}
        contenido
\end{titlepage}
  • En este caso es habitual que el documento tenga índice de contenidos, de figura y de tablas (recordar las órdenes \tableofcontents, \listoffigures y \listoftables, respectivamente) y que estos apartados (incluyendo también un prólogo) tengan una numeración distinta (normalmente con números romanos) que el resto del documento (en números arábigos). Este cambio de formato se consigue sin más que escribir donde corresponda las siguientes órdenes:
\pagenumbering{Roman}   \setcounter{page}{1}
\pagenumbering{arabic}   \setcounter{page}{1}
  • Si deseamos distinguir varias partes en el documento (por ejemplo, teoría y problemas; recopilación bibliográfica de los resultados propios; distinguir contenidos básicos de los avanzados, etc) es posible dividir el documento mediante el comando \part (el cual funciona como \chapter, \section, etc). Otra parte especial del libro es el apéndice, en este caso hay que escribir la orden \appendix y a continuación seguir con la estructura de capítulo, subsección, etc (LaTeX cambiará de forma automática su enumeración pasando de números a letras).
  • Si observáis el documento, os encontraréis con tres archivos: Estilo1.tex, Estilo2.tex y Estilo3.tex. En ellos hay información sobre cómo modificar el aspecto de las partes, capítulos, etc. De esta forma se consigue dar aspecto distinto a cada parte del documento. Sin embargo, existe una forma más sencilla de hacerlo (que afecta también a la numeración de las páginas antes indicada) con \frontmatter, \mainmatter y \backmatter (más información aquí). ¿Cuál usar? Os lo dejo a vuestro criterio.
  • También es posible crear un índice con aquellas palabras que se consideren relevantes dentro del texto usando el comando \makeindex. Yo nunca lo he usado, pero no parece díficil hacerlo.
  • Es habitual que el ancabezado y/o el pie de página de cada parte del libro (por ejemplo, cada capítulo) estén personalizados. Por ejemplo, el título del capítulo en las páginas pares y el nombre de los autores en las impares. Esto se obtiene incluyendo en el preámbulo el uso del paquete fancyhdr, especificando que el estilo de la página sea ese, con \pagestyle{fancy}, y escribiendo donde corresponda (al principio de cada capítulo en este caso) los siguientes comandos (head modifica el encabezado y foot el pie de página):
\rhead[derecha]{\thepage} 
\lhead[izquierda]{izquierda}
\chead[centro]{centro}
\rfoot[derecha]{derecha}
\lfoot[izquierda]{izquierda}
\cfoot[centro]{centro}

Si aún no habéis descomprimido el archivo que contiene el código fuente del documento, ahora es el momento. Hasta este momento sólo habíamos trabajado con un archivo .tex, sin embargo en este caso tenemos varios. De entre todos ellos hay uno que es el principal (contiene la cabecera, el preámbulo y el cuerpo del documento) y que incluye al resto con la orden \input (también se podría usar \include, si bien no son equivalentes). Es decir, en lugar de escribir todo el documento en un único archivo, se escriben en archivos distintos que posteriormente son fusionados. Esto permite una mejor organización dentro del trabajo (por ejemplo, en lugar de compilarlo todo se podría compilar sólo la parte en la que se está trabajando en ese momento) y facilita el trabajo colaborativo (por ejemplo, cuando el documento se hace entre varios autores y cada uno trabaja en una parte del mismo).

Para finalizar dos paquetes interesantes:
  • Si se está escribiendo un documento matemático con teoremas, definiciones, corolarios, etc es muy útil el paquete theorem. Aquí se explica cómo usarlo (si no lo has pillado al ver el código fuente). Adviértase que en Definiciones.tex se ha modificado el aspecto de este tipo de entornos.
  • Si tienes la necesidad de incluir un programa hecho con R, MatLab, C++, Stata o qué se yo qué programa puedes incluirlo usando el entorno verbatim para destacarlo del resto. Sin embargo, existe una opción mejor: el paquete listings. Al especificar el tipo de software usado este paquete permite destacar las palabras clave del mismo, introducir el código como un objeto flotante, introducirlo dentro de una caja, numerar las líneas (lo cual es muy útil para explicar lo que se ha hecho: en la línea 3 se define...), etc. Simplemente hay que especificarle el lenguaje de programación usado, algunas características (numeración de líneas, tamaños de los números o salto de los mismos) y a continuación escribir el código usando el entorno lstlisting. Por ejemplo:
\lstset{language=Matlab}
\lstset{numbers=left, numberstyle=\tiny, stepnumber=2, numbersep=5pt}
\begin{lstlisting}
         function [A] = Suma(B, C)
                  A = B + C
\end{lstlisting}

No hay comentarios:

Publicar un comentario