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.

domingo, 26 de enero de 2014

¿Cómo nace este blog?

Este blog se inicia debida a mi labor como docente dentro de la Universidad de Granada y, más concretamente, en el Máster Universitario "Técnicas Cuantitativas en Gestión Empresarial" donde imparto (a día de hoy) la asignatura Herramientas informáticas para la investigación. Entre los contenidos de esta asignatura tenemos la edición de textos científicos con LaTeX.

Los contenidos a tratar en dicho curso son:
En todos los post se han introducido enlaces muy interesantes que deben ser consultados por el lector ya que amplian la información expuesta en este blog. Al mismo tiempo, dichos enlaces funcionan correctamente en este momento. Pido disculpas si no lo hicieran en el futuro.

Y esta es la motivación para crear este rincón para LaTeX. Por supuesto, mi intención no es quedarme aquí, sino profundizar en lo ya expuesto y crecer poco a poco introduciendo nuevos contenidos. En definitiva, compartir con quien lo desee todo aquello que me parezca interesante sobre LaTeX.

Y por supuesto, si alguien desea ayudarme en la tarea sólo tiene que ponerse en contacto conmigo.

Cajón desastre

En este post trataremos una serie de cuestiones que pueden ser útiles y que no se han tratado hasta ahora. Concretamente:
El código fuente y demás archivos necesarios los puedes descargar aquí.

Con lo aprendido hasta ahora no se debería de tener problema (al ver el código fuente) de saber qué se está haciendo en cada caso y cómo modificarlo. Por tanto, nos centraremos en dos cuestiones:
  • El código para la fusión de documentos pdf.
  • La marca de agua que aparece en el examen.
Para la primera cuestión, el código usado es:

\documentclass{article}

\usepackage{pdfpages}

\begin{document}

        \includepdf[pages={1-1}]{Carta/letter.pdf}
        \includepdf[pages={1-3}{CV/CV.pdf}
        \includepdf[pages={1-1}]{Examen1/examen.pdf}
        \includepdf[pages={1-2}]{Examen2/Tema1A.pdf}

\end{document}

Usar un documento de tipo article, report o book es en este caso irrelevante a no ser que además de fusionar documentos se vaya a escribir texto (en tal caso habría que elegir el tipo de documento que mejor se adapte al trabajo que queremos crear). También habría que introducir los paquetes necesarios.

El paquete necesario para juntar archivos pdfs es pdfpages (incluido en el preámbulo del documento) el cual usa la orden \includepdf. Esta orden admite entre corchetes una serie de opciones tales como: las páginas del documentos que se quieren incluir, el número de páginas por hoja o la horientación de los documentos fusionados (estas dos no se han usado en el ejemplo). Y entre llaves se especifica la ruta del documento que se quiere fusionar. Más detalles en su manual.

La segunda cuestión trata sobre la imagen introducida como marca de agua en el examen. El código a introducir en el preámbulo del documento es:

\usepackage{transparent}
\usepackage{eso-pic}

\AddToShipoutPicture*{
    \put(0,0){
        \parbox[b][\paperheight]{\paperwidth}{%
            \vfill
            \centering
            {\transparent{0.1}\includegraphics[scale=0.5]{mc}}%
            \vfill
        }
    }
}

En primer lugar, se observa que son necesarios los paquetes transparent y eso-pic. Del código que viene a continuación nos centraremos en la sexta línea que es donde: a) se especifica el grado de tranparencia que se desea (en este caso 0.1) y b) se especifica la imagen (y sus dimensiones) que se quiere incluir como marca de agua.

Poster con LaTeX: clase BEAMER

Para crear un poster en LaTeX vuelven a haber distintas opciones: baposter, a0poster, tuepdfscreen (que tiene también para presentaciones) e incluso uno anónimo que me ha gustado. Sin embargo, volveremos a centrarnos en la clase beamer para crear un poster (aprovechemos los conocimientos que ya tenemos sobre ella). Toda la información sobre la creación de posters con beamer se encuentra en la web de Philippe Dreuw.

Un punto de partida puede ser el siguiente:

\documentclass[final]{beamer}
\mode<presentation>
  {
    \usetheme{Modificado}
  }

  \usepackage[english]{babel}
  \usepackage[latin1]{inputenc}

  \usepackage[orientation=portrait,size=a0,scale=1.27,debug]{beamerposter}


  \title{Título}
  \author{Autor1 \\ Autor2}
  \institute{Institución1 \\ Institución2}
  \date{Fecha}

\begin{document}

  \begin{frame}{}

    \vfill

    \begin{block}{Título caja 1}
        Texto caja 1
    \end{block}

    \vfill

    \begin{block}{Título caja 2}
        Texto caja 2 dividida en dos columnas

        La siguientes es al revés: dos columnas y cada una con una caja

        \vspace{0.5cm}

        \begin{columns}[t]
            \begin{column}{.45\linewidth}
                      Primera columna
            \end{column}
            \hfill
            \begin{column}{0.52\linewidth}
                Segunda columna
            \end{column}
        \end{columns}
    \end{block}

    \vfill

    \begin{columns}[t]
        \begin{column}{.45\linewidth}
            \begin{block}{Caja 3}
                      Texto caja 3
            \end{block}
        \end{column}
        \hfill
        \begin{column}{0.5\linewidth}
            \begin{block}{Caja 4}
                      Texto caja 4
            \end{block}
        \end{column}
    \end{columns}

    \vfill

  \end{frame}

\end{document}

En primer lugar especificamos que el tipo de documento sea beamer y le indicamos el tema que se desea usar. En este caso se especifica un tema modificado (más adelante se explicará por qué ha sido cambiado). Especificamos los paquetes para los caracteres especiales necesarios para escribir en español y a continuación viene una orden de especial interés:

\usepackage[orientation=portrait,size=a0,scale=1.27,debug]{beamerposter}
\usepackage[orientation=portrait,size=a1,scale=1.4,grid,debug]{beamerposter}
\usepackage[size=custom,width=200,height=120,scale=2,debug]{beamerposter}

Con este comando se especifica la orientación del poster (vertical u horizontal), sus dimensiones (con size o indicando una altura y anchura específica con width y height) y el tamaño de los objetos (imágenes, tablas, letra, etc) del poster (lo cual es muy interesante a la hora de introducir más o menos contenido) con scale.

La siguiente información hace referencia al título del poster y autores y a continuación se tiene el cuerpo del documento. En este caso no entraré en datalle ya que se escribe como en cualquier documento de LaTeX (para introducir imágenes, tablas, fórmulas, referencias, bibliografía, etc) o como se vió al estudiar las presentaciones con beamer (división en columnas o uso de bloques).

El resultado de este ejemplo se puede visualizar aquí (todos los archivos necesarios para la correcta compilación está en el siguiente enlace comprimidos).

¿Por qué se ha modificado el tema a usar? 

Al descomprimir los archivos indicados con anterioridad se ha de buscar uno con extensión .sty, concretamente beamerthemeModificado.sty. Concretamente, en este archivo se especifica el nombre del logo (y su tamaño) que aparece en la cabecera y el contenido del pie de poster. 

Al abrirlo (por ejemplo, con WordPad) debemos de buscar (Ctrl+B) la palabra 'logo', apareciendo:

\begin{center}
          \includegraphics[width=.3\linewidth]{logo} 
\end{center}

Y esto nos tiene que sonar de algo: no es más que la orden para introducir una imagen (que debemos saber modificar sin problemas).

Si queremos modificar el pie de página busquemos la palabra 'pie' y obtendremos:

\texttt{Pie de p\'agina parte izquierda}
\hfill
\texttt{Pie de p\'agina parte derecha}

Sin más que modificar el texto entre llaves cambiaremos el contenido del pie de página del poster. A este respecto hay que tener en cuenta que se han escrito los acentos de una forma especial ya que el paquete inputenc no funciona correctamente con el contenido de este archivo.

sábado, 25 de enero de 2014

Presentaciones con LaTeX II: clase POWERDOT

Una buena alternativa (a mi juicio) a las presentaciones con beamer es la clase powerdot. Quizás sea algo menos espectacular que la anterior, pero también ofrece un resultado de gran calidad.

La estructura de partida de un dpcumento podría ser el siguiente:

\documentclass[style=sailor]{powerdot}

    \pdsetup{
      lf=pie de p\'agina izquierdo,
      rf=pie de p\'agina derecho
    }

    \usepackage[spanish]{babel}
    \usepackage[ansinew]{inputenc}
   
    \usepackage{ragged2e} % para justificar el texto
   
    \title{Título}
    \author{Autor}
    \date{Fecha}

\begin{document}

    \maketitle

    \begin{slide}{Contenidos}
        \tableofcontents[content=sections]
    \end{slide}
   
    \section{Sección 1}
   
    \begin{slide}{Econometría}\justifying
        bla bla bla
    \end{slide}
   
    \begin{slide}[toc=]{Econometría}\justifying
        bla bla bla
    \end{slide}

\end{document}

En primer lugar se especifica que el tipo de documento sea powerdot y justo antes, entre corchetes, se le indica que el estilo de la presentación ha de ser sailor (para saber los estilos disponibles consultar las páginas 21 a 26 del manual de powerdot). En segundo lugar se especifica el texto que deseamos que aparezca en el pie de la presentación y lo que viene a continuación es más que conocido: paquetes para los caracteres especiales del español, el paquete ragged2e para justificar el texto y el título de la presentación el autor y la fecha.

En el cuerpo del documento es donde se crean las transparencias con el entorno slide:

\begin{slide}{Título transparencia}
            contenido de la transparencia
\end{slide}

Es decir, la filosofía es la misma que la estudiada anteriormente con beamer, lo único que cambian algunas órdenes como en este caso frame por slide.

Dentro del cuerpo del documento tenemos que:
  • La transparencia que hace referencia al título y autor se obtiene escribiendo \maketitle.
  • Para obtener el índice escribimos en un entorno slide el comando \tableofcontents (en la página 15 del manual de powerdot se pueden ver las opciones que admite esta orden).
  • El comando \justifying para justificar el texto se usa al igual que en beamer.
  • Antes del título de la transparencia, entre corchetes, se puede especificar un título de transparencia corto con el comando toc que será el que aparezca en los menús de la presentación. En este caso, por ejemplo, se indica que no aparezca nada.
  • El documento se puede organizar con secciones al igual que cualquier documento LaTeX.
Además:
  • También es posible dividir la transparencia en dos columnas con la orden \twovolumn (para más información ver página 19 del manual).
  • También se pueden usar los comandos \pause y \onslide comentados para beamer (para más información ver página 12 del manual).
Para terminar hay que destacar que para compilar este tipo de documentos hay que seguir los siguientes pasos: 
  1. Compilar con LaTeX (por lo que si se incluye alguna imagen ha de ser en formato eps).
  2. Pasar de  dvi a ps.
  3. Pasar de ps a pdf.
En caso contrario se obtendrán errores y no se compilará el documento.

Un ejemplo de lo comentado en este post se puede encontrar aquí junto a su código fuente. Un breve e interesante manual sobre powerdot se puede encontrar en el siguiente enlace.

REGALO. Otra opción para hacer una presentación con buena calidad y mínimo esfuerzo puede ser la clase pdfscreen.sty. En el siguiente enlace puedes encontrar un ejemplo. Toda la información está disponible en http://www.ctan.org/pkg/pdfscreen.

Presentaciones con LaTeX I: clase BEAMER

En cualquier ámbito es muy común realizar algún tipo de presentación. Si el contenido está escrito en LaTeX lo más lógico es continuar trabajando con este editor. Lo cual nos resultará muy cómo ya que básicamente habrá que copiar y pegar. 

Dentro de LaTeX hay varias opciones para crear presentaciones, sin embargo, la más extendida es la clase beamer creada por Till Tantau. Toda la información sobre esta clase está disponible en el manual The BEAMER class. USER Guide.

Un documento básico (ver) a partir del cual empezar a trabajar podría ser el siguiente:

\documentclass{beamer}

%%%%%%%%%%%%%%%%%%% para escribir en español
    \usepackage[spanish]{babel}
    \usepackage[ansinew]{inputenc}

%%%%%%%%%%%%%%%%%%% tema de Beamer
    \usetheme{Warsaw}

%%%%%%%%%%%%%%%%%%% título, autor, etc...
    \title[T\'itulo corto]{T\'itulo largo}
    \subtitle{Subt\'itulo}
    \author[Autor corto]{Autor largo}
    \institute[Instituci\'on corta]{Instituci\'on largo}
    \date[Fecha corta]{Fecha larga}

\begin{document}

\begin{frame}
    \titlepage
\end{frame}

\begin{frame}
    \frametitle{T\'itulo transparencia}

\end{frame}

\end{document}

En primer lugar se observa que el tipo de documento ha pasado de ser article, report o book a beamer. A continuación se especifican los dos paquetes que venimos usando para usar los caracteres especiales necesarios para escribir en español. Y en tercer lugar, se especifica el tipo de tema que queremos usar de la clase beamer: Warsaw.

Existen muchas más opciones. Una lista exhaustiva se puede encontrar en las páginas 145 a 158 del manual anteriormente citado. Es más, en su tercera parte se puede encontrar cómo modificar éste y otros aspectos de las presentaciones. Puesto que en este post buscamos una introducción (lo mínimo para obtener una presentación de calidad) no entraremos en más detalles, lo dejamos para un futuro.

En el siguiente bloque de órdenes se especifica el título de la presentación, si se desea un subtítulo, los autores, afiliación y fecha. La diferencia entre lo escrito entre corchetes y paréntesis es que lo primero aparecerá en los menús (como enlace) del documento.

A partir de entonces se tiene el cuerpo del documento donde se especifica el contenido que ha de aparecer en cada transparencia, las cuales se declaran con el entorno frame:

\begin{frame}
          contenido de la transparencia
\end{frame}

Así, podemos observar que la primera está destinada al título, autores, etc (sin más que escribir \titlepage) y la segunda estará en blanco excepto por el título de la misma (especificado con \frametitle).

A partir de aquí es rellenar cada transparencia con sus correspondientes contenidos escribiendo en LaTeX tal y como se ha hecho hasta ahora para escribir fórmulas, tablas, insertar imágenes, referencias bibliográficas, etc.

Ahora bien, es posible mejorar la presentación con una serie de órdenes específicas de esta clase. Así por ejemplo se puede introducir texto dentro de bloques con los siguientes entornos:

 \begin{block}{Título 1}
        Entorno \textit{block}
 \end{block}

 \begin{exampleblock}{Título 2}
        Entorno \textit{exampleblock}
 \end{exampleblock}

 \begin{alertblock}{Título 3}
        Entorno \textit{alertblock}
 \end{alertblock}

Los primeros están destinados a texto normal, los segundos a ejemplos y los terceros para cuando se quiera destacar alguna cuestión.

También es muy común dividir la tranasparencia en columnas, lo cual se consigue con el entorno columns:

\begin{columns}
      % primera columna
      \begin{column}{0.5\textwidth}
            \begin{block}{}
                    Contenido de la 1ª columna.
            \end{block}
      \end{column}
      \hfill
      % segunda columna
      \begin{column}{0.5\textwidth}
            \begin{block}{}
                    Contenido de la 2ª columna.
            \end{block}
      \end{column}
\end{columns}

En este caso se han creado dos columnas (con \begin{column} y \end{column}) cuyo ancho es del 50% del ancho del texto (orden 0.5\textwidth) y que contienen un bloque con texto escrito (evidentemente crear o no un bloque es una cuestión estética que no tiene nada que ver con la creación de las columnas). Dichas columnas quedan a igual distancia gracias a \hfill.

Otra opción interesante es el uso de \pause, que me permite ir descubriendo poco a poco el contenido de una transparencia. Aunque un excesivo uso de este comando, si la presentación es extensa, puede hacer que la exposición sea eterna... Por otro lado, las listas y descripciones permiten algunas opciones especiales en beamer:

 \begin{itemize}
        \item Uno \pause
        \item Dos \pause
        \item y Tres. \pause
 \end{itemize}

 \begin{itemize}[<+-| alert@+>]
        \item Cuatro.
        \item Cinco.
        \item Seis.
        \item Siete.
 \end{itemize}

 \begin{itemize}
        \item<8-> Ocho.
        \item<11> Once.
        \item<9-10> Nueve, diez y no once.
 \end{itemize}

El código anterior escrito en una transparencia hace que aparezcan de forma progresiva los siete primero items (ver la diferencia entre los tres primeros y los cuatro siguientes). Los tres últimos merecen especial atención, concretamente lo escrito entre <>: a) <8-> indica que aparezca a partir del octavo click que se haga en dicha transparencia, b) <11> que aparezca sólo en el onceavo y <9-10> que estén presentes en el noveno y décimo, pero no en el resto.

Unas órdenes que pueden conseguir que nuestras presentaciones sean muy vistosas son \only, \onslide y \visible:

\only<1>{
      \begin{block}{}
               Sólo en el primer click
      \end{block}
}

\onslide<2-3>{
      \begin{exampleblock}{}
               En los clicks 2 y 3.
      \end{exampleblock}
}

\visible<2>{
      \begin{alertblock}{}
               Visible en el segundo click.
      \end{alertblock}
}

\uncover<4>{
      \begin{alertblock}{}
                Descubierto en el cuarto click.
      \end{alertblock}
}

¿Queda claro lo que hace, no? Para más detalles ver las páginas 80 a 82 del manual de beamer.

Si se incluyen todos estos comandos en el documento base inicial nos quedará algo parecido a esto (su código fuente). Si siempre recomiendo visualizar el código que genera el documento, en este caso más que nunca ya que así podrás:
  • Obervar cómo se ha modificado la parte donde se especifican los autores de manera que se pueda introducir para cada autor (en caso de haber más de uno) información como el correo electrónico, categoría profesional, etc.
  • Ver algún ejemplo más sobre el entorno columns.
  • Ver cómo se usa \vspace para obtener espacios verticales.
  • Conseguir que el texto aparezca justificado: escribe \usepackage{ragged2e} en el preámbulo y escribe \justifying a continuación del inicio de transparencia y/o bloque:
\begin{frame}[fragile]\justifying

    \begin{block}{Ejemplo de texto justificado}\justifying
        En un lugar de la Mancha, de cuyo nombre no quiero acordarme, no ha mucho tiempo que vivía  un hidalgo de los de lanza en astillero, adarga antigua, rocín flaco y galgo corredor. Una olla de algo más vaca que carnero, salpicón las más noches, duelos y quebrantos los sábados, lentejas los viernes, algún palomino de añadidura los domingos, consumían las tres partes de su hacienda...
    \end{block}

\end{frame}
  • Para poder usar el entorno verbatim hay que preparar la transparencia para ello escribiendo fragile (ver código anterior).
  • La organización del documento se hace con los comandos \section y \subsection al igual que en cualquier documento de LaTeX. Además, darán lugar al menú de navegación de la presentación (para obtener el índice escribir \tableofcontents dentro de un frame).

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}

Clase REPORT

Hasta ahora hemos escrito documentos breves, por lo que se ha usada la clase article (pensada para la creación de artículos científicos). Si bien, es posible crear otro tipos de documentos más extensos con las clases report (para informes, apuntes, etc) o book (para crear un libro).

A modo de ejemplo, coge alguno de los documentos usados hasta el momento y donde pone article escribe report o book y compila. Otros ejemplos pueden ser los siguentes:

\documentclass[10pt,landscape]{report}
\documentclass[10pt,twocolumn]{book}

En estos casos además se ha modificado el tamaño de la letra (a 10 puntos), la orientación del documento con landscape (de horizontal a vertical) o que el texto se escriba en dos columnas (twocolumn). Para más detalles ver las páginas 8 y 9 de Una descripción de LaTeX.

En el presente post nos centraremos en la clase report, dejando book para cuando se aborde la organización de documentos extensos.
Algunos cambios que se pueden apreciar son:
  • El título y autores aparecen en una primera página.
  • Aparece una nueva sección: \chapter (capítulo). Es decir,el apartado de primer rango pasa a ser el capítulo, el cual estará formado por secciones y éstas por subsecciones. Si se acompaña dicha orden con un asterisco, es decir, \chapter*{Capítulo}, no será referenciada en el índice del documento.
  • De manera automática cada capítulo comenzará en una página nueva.
  • También se pueden crear apéndices: \appendix. Su estructura es como la del resto del documento con capítulos, secciones y subsecciones.
Aquí tienes un ejemplo de lo que puede ser un documento base para crear unos apuntos (el código).

Dos aspectos a destacar de dicho código son:
  • El uso del paquete hyperref (especificado en el preámbulo), gracias al cual las referencias del documento pasan a ser enlaces que nos llevan de una parte a otra del documento (más información aquí).
  • El uso del paquete pdfdraftcopy (especificado también en el preámbulo) para crear la marca de agua del documento. En algunas ocasiones (como me ha pasado con este paquete) puede ocurrir que queramos usar paquetes que no tenemos descargados en el ordenador. En tal caso, con descargarlos de internet y ponerlos en la misma carpeta del archivo con el que estemos trabajando es duficiente para solventar el problema (descarga del paquete).
Otra opción para crear marcas de agua en un documento es el paquete draftwatermark.

Tablas con LaTeX

El entorno para introducir tablas en LaTeX es tabular, el cual responde a la siguiente estructura:

\begin{tabular}{|c|l|r|}
      \hline
      % after \\: \hline or \cline{col1-col2} \cline{col3-col4} ...
       &  &  \\
       &  &  \\
       &  &  \\
      \hline
\end{tabular}

donde:
  • |c|l|r| indica que tengo tres columnas separadas por una línea vertical (esa es la misión de |), la primera centrada, c, la segunda justificada a la izquierda, l, y la tercera a la derecha, r.
  • \hline dibuja una línea horizontal.
  • cada columna es separada por & y cada fila termina con \\.
Un ejemplo (donde además se ha centrado la tabla en el documento mediante center) puede ser el siguiente:

\begin{center}
      \begin{tabular}{cl|r}
                Nombre & Apellidos & DNI \\
                \hline
                Pepe & Salas & 87568425Y \\
                Juan & Benítez & 85749638J \\
                \hline
      \end{tabular}
\end{center}

Una opción es introducir las tablas como objetos flotantes usando el entorno table (el cual funciona exactamente igual que el entorno figure ya comentado en este blog):

\begin{table}
       \begin{center}
             \begin{tabular}{|c|l|r|}
                    \hline
                    Nombre & Apellidos & DNI \\
                    \hline
                    Pepe & Salas & 87568425Y \\
                    Juan & Benítez & 85749638J \\
                    \hline
             \end{tabular}
             \caption{Tabla como elemento flotante}\label{tabla}
       \end{center}
\end{table}

Con este entorno es posible introducirle una leyenda, con la orden \caption, y asignarle una etiqueta, con la orden \label, para hacer referencia a la tabla en cualquier parte del documento.

Hasta aquí lo básico a lo que las tablas se refiere. Si deseas aumentar tus conocimientos sobre este aspecto recomiendo la lectura de las páginas 27 a 31 de Una descripción de LaTeX. Y si deseas convertirte en un usuario avanzado (introduciendo colores, partiendo/compartiendo columnas o filas, etc) te recomiento este otro documento.

Para finalizar, la orden \listoftables genera un índice de las tablas del documento (que están como objetos flotantes) allí donde se escriba.

Un ejemplo de lo expuesto lo tienes aquí junto a su código fuente.

Imágenes en LaTeX

Para introducir imágenes en LaTeX se usa el entorno figure que nos va a permitir hacer referencia a la imagen siguiendo el mismo sistema que con las ecuaciones y que, además, colocará a la misma en el lugar más adecuado dentro del documento (se trata de un objeto flotante). Finalmente, destacar que es necesario especificar en el preámbulo del documento que se usará el paquete graphicx:

\usepackage{graphicx}

La estructura básica del entorno figure es la siguiente

\begin{figure}[opciones]
       órdenes
\end{figure}

donde opciones permite especificar preferencias sobre la colocación del objeto:
  • h: indica colocar la imagen muy próximo al lugar donde se escribe en el código fuente.
  • t: en la parte superior de una página.
  • b: en la parte inferior de una página.
  • p: en una página donde sólo haya objetos flotantes.
  • !: sin considerar los parámetros internos que impedirían colocar el objeto.
Por defecto (si no se especifica nada), la opción es tbp.

Así, por ejemplo, para incorporar el logo de la UGR habría que escribir:

\begin{figure}
     \centering
     \includegraphics[width=5cm]{escudo}
     \caption{Escudo de la UGR}\label{EscudoUGR1}
\end{figure}

Se ha especificado que la imagen salga centrada (con \centering), que tenga un ancho de 5 centímetros (con width=5cm), que debajo suya aparezca la leyenda "Escudo de la UGR" (con \caption) y finalmente se le ha asignado (con \label) la etiqueta EscudoUGR1 de manera que si se quiere hacer referencia a esta figura en otra parte del documento simplemente hay que escribir \ref{EscudoUGR1}.

Adviértase además que se ha supuesto que la imagen está en el mismo directorio del archivo .tex que se está compilando. Sin embargo, es muy común tener todas las imágenes almacenadas en una misma carpeta, por lo que se hace necesario especificar la ruta de acceso. Supongamos que en la carpeta donde está el .tex se crea otra con el nombre de 'imagen' y almacenamos ahí todas las imágenes. En tal caso, el código a usar sería:

\begin{figure}
     \centering
     \includegraphics[width=5cm]{imagen/escudo}\\
     \caption{Escudo de la UGR}\label{EscudoUGR2}
\end{figure}

En este caso, al lado del ancho de la imagen, se ha especificado el camino concreto: imagen/escudo.

Si al trabajar con Escribiendo mi primer documento - Parte I no entraste en el siguiente enlace, ahora es el momento de hacerlo. Al inicio de dicha web habréis podido leer que LaTeX permite compilar los documentos en un formato propio, con extensión DVI. Inicialmente este era el único formato en el que se podían obtener los documentos compilados (generados) por LaTeX. Por suerte, a día de hoy se pueden generar los documento en formato PDF, el cual está mucho más extendido.

¿Por qué cuento todo esto?

Muy fácil, cuando se compila con 'latex' (para obtener documentos .dvi) o con 'pdflatex' (para documentos .pdf) existen algunas diferencias, que en el caso de las figuras son importantes. Así, el primero sólo admite imágenes del tipo EPS mientras que el segundo funciona con jpg, bmp, png, etc. Es decir, son incompatibles en este aspecto.

Una posible solución para evitar errores es tener las imágenes en ambos formatos (hoy en día prácticamente todos los programas permiten exportar las imágenes en todos los formatos anteriores o, en caso de que esto no sea posible, existen convertidores de formatos de imágenes que ofrecen relativa calidad, si bien no es la opción más idónea) y en el código fuente que se introduzca NO especificar la extensión de archivo (por ejemplo anteriormente se ha escrito escudo y no escudo.eps o escudo.jpg). De esta forma, al compilar por un sistema u otro es el propio LaTeX el que elige el formato adecuado.

Por último, al igual que se obtiene fácilmente un índice de los apartados del documento, también es posible  obtner un índice de las figuras que hay en el documento sin más que escribir la siguiente orden donde se quiera que aparezca dicho índice:

\listoffigures

Un ejemplo de todo lo expuesto lo podéis encontraren los siguientes enlaces en formato pdf y en formato dvi, además del código fuente (para que compile correctamente debéis de tener una imagen con el nombre de escudo).

martes, 21 de enero de 2014

Expresiones matemáticas

Si algo caracteriza a LaTeX (y lo diferencia del resto de editores de texto) es la calidad que ofrece a la hora de trabajar con expresiones matemáticas. En este sentido no tiene competidor.

Así en este post vamos a ver como escribir fórmulas matemáticas en LaTeX.

En primer lugar veremos el uso del símbolo $ (recordar que se trata de uno de los caracteres especiales que tiene LaTeX). Cuando yo deseo escribir una expresión matemática he de hacerlo usando este símbolo:
$x^{2} + \frac{23}{x^{2} - 54}$

Si además quiero destacarla y que me aparezca centrada en un renglón aparte usaré $$:
$$x^{2} + \frac{23}{x^{2} - 54}$$

Otra opción interesante a la hora de escribir fórmulas es la posibilidad de enumerarlas, de manera que se pueda hacer referencia a ellas cuando sea necesario. Para lo primero usaremos el comando \label dentro del entorno equation:
\begin{equation}
       x^{2} + \frac{23}{x^{2} - 54}
       \label{ecuacion1}
\end{equation}
De esta forma, cuando queramos nombrarla bastará con escribir \ref{ecuacion1}.

Algo relativamente común es trabajar con expresiones tan largas (como, por ejemplo, una cadena de igualdades) que se exceda del ancho del documento. En tal caso se hace necesario partir la expresión de manera uqe se pueda visualizar correctamente. Para conseguir este objetivo se usa el entorno eqnarray. Por ejemplo:

   \begin{eqnarray}
      \lim \limits_{x \rightarrow +\infty} 8 \cdot x &=& \sum \limits_{i=1}^{n} x_{i}^{2} + \int_{-3}^{3} y \cdot \frac{3 \cdot x}{23} \ dy \nonumber \\
        &=& x^{2} + \frac{23}{x^{2} - 54} + \frac{y - 34 \cdot y^{1/2} + 45 \cdot \frac{x}{y}}{2 \cdot \sum \limits_{j=2}^{345} j} \label{ecuacion2} \\
        &=& 8 \nonumber
    \end{eqnarray}

Adviértase que no se numeran los dos primeros renglones (al usar \nonumber), mientras que si se numera el tercero. Además, se ha especificado una etiqueta (ecuacion2) para hacer referencia a la misma en un futuro.

Un ejemplo de este post lo puedes encontrar en el siguiente enlace. Y como siempre, no dejes de consultar el código fuente.

Al igual que en los post anteriores, no se desea hacer un recopilación exhaustiva de todas las opciones y expresiones que se pueden usar en LaTeX. Una ampliación de lo aquí expuesto se puede encontrar con la lectura del capítulo 3 (páginas 35 a 53) de Una descripción de LaTeX.

lunes, 20 de enero de 2014

Escribiendo mi primer documento - Parte II

Continuamos escribiendo nuestro primer documento de manera que le vamos a añadir listas, descripciones y enumeraciones. Así, para listas sencillas se ha de usar el entorno itemize:

    \begin{itemize}
    \item nivel 1
    \begin{itemize}
    \item nivel 2
    \item nivel 2
    \end{itemize}
    \item nivel 1
    \end{itemize}

Mientras que para listas numeradas el entorno a usar es enumerate:

    \begin{enumerate}
    \item uno
    \item dos
    \begin{enumerate}
    \item uno.uno
    \end{enumerate}
    \item tres
    \end{enumerate}

Para usar opciones extras de este paquete, como por ejemplo:

\begin{enumerate}[a)]
    \item uno
    \item dos
    \item[A.1] cambio
        \item continuamos
\end{enumerate}

se tiene que especificar el paquete enumerate en el preámbulo: 

\usepackage{enumerate}

Finalmente, para descripciones y/o definiciones es el entorno description el adecuado:

\begin{description}
    \item[Concepto 1:] definición concepto 1.
    \item[Concepto 2:] definición concepto 2.
    \item[Concepto 3:] definición concepto 3.
\end{description}
Si deseas saber más sobre listas y enumeraciones lee el siguiente documento.

También es posible modificar el tipo y el tamaño de la letra. Por ejemplo:

Hay tamaños {\small pequeños}, {\normalsize normales}, {\tiny diminutos}, {\large grandes}, {\Large más grandes}, {\Huge enormes}, etc
También puedes escribir en \textbf{negrita}, \textit{cursiva}, \textsc{versalita}, etc

Para más detalles ver páginas 55 a 57 de Una descripción de LaTeX.

Y si fácil ha sido modificar el texto, más fácil es introducir colores sin más que especificar el paquete color en el preámbulo:

Escribiendo {\color{red} \verb|\usepackage{color}|} en el preámbulo podemos {\color{red} colorear} {\color{yellow} las} {\color{green} letras} {\color{white} a} {\color{cyan} nuestro} {\color{blue} gusto}.

La orden \pagecolor{red} pinta de rojo el fondo de una página. 

Si bien el número de colores predifinidos en LaTeX es amplio, es posible crear nuestros propios colores sin más que escribir en el preámbulo:

\definecolor{micolor}{RGB}{98,13,39}
\definecolor{darkolivegreen}{rgb}{0.33,0.42,0.18}

y en el cuerpo del documento:

Mis colores propios: {\color{micolor} mi color} y {\color{darkolivegreen} otro color}.

Adviértase que los colores generados se obtienen como combinación del rojo, verde y azul.

Escribir un pie de página es tan fácil como usar la orden \footnote:

\footnote{Pie de página}

Terminaremos este post con la introducción de referencias bibliográficas escribiendo el texto siguiente donde deseemos que aparezca la bibliografía (normalmente al final del documento):

\begin{thebibliography}{99}
        \bibitem{manual} Bautista, T. y otros (1998). \emph{``Una descripción de \LaTeX''}.  Manual del Centro de Microelectrónica Aplicada de la Universidad de Las Palmas de G.C.
\end{thebibliography}

Si deseamos citar alguna de las referencias introducidas simplemente hay que usar el comando \cite:

Hay que leer \cite{manual} para aprender más de \LaTeX.

En el siguiente pdf tienes un ejemplo de todo lo explicado. Y por supuesto, no dudes en consultar el código fuente.

Escribiendo mi primer documento - Parte I

La estructura básica de un documento LaTeX está formada por la cabecera (tipo de documento que se va a generar), el preámbulo (donde especifico los paquetes -extras- que se van a usar) y el cuerpo del documento (contenido del texto). Así, por ejemplo, el mínimo requerido para compilar con éxito un documento LaTeX podría ser el siguiente:

\documentclass{article}

\usepackage[spanish]{babel}
\usepackage[ansinew]{inputenc}
%\usepackage[utf8]{inputenc}

\begin{document}

    Hola!!!!!!!!!!

    Me llamo Román

\end{document}

Donde se ha especificado que el documento es un artículo mediante article (otras opciones son informes -escribir report- o libros -escribir book-), se ha especificado que se han de usar los paquetes babel e inputenc (para la traducción correcta al español  y los acentos) y finalmente se ha introducido el texto a compilar entre \begin{document} y \end{document} (sólo se compila lo que escribamos entre estas dos órdenes). El resultado lo tienes en el siguiente enlace.

Más información sobre la estructura básica de un documento de LaTeX en las páginas 6 a 11 de Una descripción de LaTeX.

Como veremos a lo largo de los distintos post en LaTeX hay una serie de caracteres especiales, a saber: $ & % # _ { } ~ ^ \. Así, por ejemplo, $ se usa para introducir fórmulas matemáticas o % para escribir comentarios (para más información ver página 5 de Una descripción de LaTeX).

A continuación podemos empezar a introducir información en el documento añadiendo, por ejemplo, un título, los autores, fecha de creación, índice o secciones:

\title{Mi primer documento de \LaTeX}
\author{Autor\thanks{pie de página \newline para introducir información de interés \newline como correo, institución, etc}}
\date{} %\date{\today}

\tableofcontents

\section{Sección}
\subsection{Subsección}
\subsubsection{Subsubsección}

Cuestiones a tener en cuenta:
  • \title, \author y \date van antes de \begin{document} y para que aparezcan en el texto detrás de \begin{document} se ha de escribir \maketitle.
  • el comando \newline me crea un salto de línea (¿qué hará \newpage?).
  • el resto de órdenes van en el cuerpo del documento (es decir, detrás de \begin{document}).
  • tanto el índice como secciones las enumera y genera automáticamente (nos despreocupamos totalmente de este aspecto).
  • si escribo \section*{Sección} dicho apartado no aparece referenciado en el índice (igual para \subsection* y \subsubsection*).
  • adviértase que al escribir un documento científico (un artículo) no se suele introducir la tabla de contenidos.
Si se desea escribir un resumen del trabajo simplemente hay que escribir

\begin{abstract}
      resumen
\end{abstract}

justo debajo de \maketitle. Finalmente, si deseo modificar los márgenes del documento puedo escribir en el preámbulo

\usepackage[top=4cm, bottom=2cm, left=2cm, right=2cm]{geometry}

El documento final lo puedes consultar en este enlace mientras que su compilación como pdf en este otro.

Finalmente os recomiento la lectura del siguiente enlace perteneciente al curso Documentos científicos con LaTeX.

Bibliografía

La información disponible (en internet) sobre LaTeX es tan extensa que sería inútil intentar proporcionar aquí una lista detallada de bibliografía a usar.

Ahora bien, el documento con el que yo empecé y que recomiendo a todo el mundo es:

Una descripción de LaTeX de Tomás Bautista y otros de 1998

que puede ser descargado libremente de internet.

Una vez releido unas 200 veces este documento, se puede dar el salto a estos otros dos documentos:
  • LaTeX, una impresora en sus manos de Bernardo Cascales y otros (Aula Documental de Investigación, Madrid, 2000).
  • El libro de LaTeX de Bernardo Cascales y otros (Prentice Hall, Madrid, 2003).
También resulta interesante consultar los documentos de ayuda que vienen con la instalación de MikTex y, que normalmente, se encuentran en C:\Archivos de programa\MikTeX\doc\latex.

En cuanto a la creación de presentaciones, disponemos de estupendos manuales para la clase beamer y powerdot. Mientras que para la creación de poster también disponemos de alguna web de referencia para las clases beamer (una vez más) y a0poster.

Y claro, siempre tenemos a mano a San Gugel para intentar resolver nuestras dudas.

Instalación de LaTeX

Pasos a seguir para instalar LaTeX en Windows

  1. Instalar Adobe Reader: http://get.adobe.com/es/reader/.
  2. Instalar intérprete GhostScript: http://pages.cs.wisc.edu/~ghost/.
  3. Instalar visor GSview: http://pages.cs.wisc.edu/~ghost/.
  4. Instalar MikTeX (http://miktex.org/download):
    • Descargar instalador (de 64-bit ó 32-bit, según corresponda) y ejecutarlo.
    • Descargar MikTeX completo en el disco duro del ordenador.
    • Ejecutar otra vez el instalador e instalar MikTeX.
  5. Instalar editor de texto:
  6. Crear formatos y actualizar rutas:
    • Inicio --> Todos los programas --> MikTeX 2.9 --> Mainteneance --> Settings.
    • Pulsar sobre los botones 'Refresh FNDB' y 'Update Formats'.
¡OJO! Es importante instalar los programas en el orden indicado.

Pasos a seguir para instalar LaTeX en Mac OSX

Instalar (si no lo está ya por defecto) MacTex: MacTeX.pkg (incluye una distribución de LaTeX -TeXLive-, un editor -TeXShop- y un visor de documentos).

¿Por dónde empezar?

LaTeX es básicamente estamos hablando de un sistema de composición de textos, orientado especialmente a la creación de libros, documentos científicos y técnicos que contengan fórmulas matemáticas (en latex-project, wikipedia o CervanTeX puedes encontrar información más detallada).

Es decir, vas a poder generar documentos de la calidad de The not so short introduction to LaTeX, o presentaciones como esta de Till Tantau o posters como el de Rob J. Hyndman.

Si todo esto es nuevo para tí y te resulta interesante, mi intención es poner los medios a tu disposición para que puedas iniciarte en el manejo de este compilador de texto. Si ya te suena y lo manejas algo, espero que encuentres cositas que te faciliten su manejo. Y si eres un experto y encuentras alguna errata o forma de hacerlo mejor... por favor, ¡compártelo con todos nosotros!