Archivo de la categoría: Curso no convencional de Latex

Curso no convencional de LaTeX: píntame ese código

En este episodio vamos a hablar de resaltado de sintaxis, es decir, vamos a aprender a darle formato al código fuente que hayamos insertado en nuestro documento con la idea de que sea más fácil de leer.

Hay varios paquetes que nos permiten pintar de colorines nuestro código, está listings que he usado bastante, minted que tenía ganas de aprender a usar y LGrind que descubrí al escribir esto. Voy a hablar de los dos primeros que son los que controlo y sobre LGrind investigáis si os gusta, igual hasta hay más por ahí.

Lo fácil: listings

El paquete listings se utiliza de manera similar al resto de paquetes que hemos visto hasta ahora: lo cargamos, establecemos sus opciones y luego utilizamos los comandos que nos proporciona en el cuerpo del documento.

Seguir leyendo →

Curso no convencional de LaTeX: un documento científico

Vamos a hablar del caso en el que LaTeX da lo mejor de sí mismo: un documento científico. Con esto me refiero a libros técnicos, tesis, artículos… ya me entendéis. No tienen por qué hablar necesariamente de ciencia, si me centro más en ellos es porque es mi campo.

La característica esencial de un documento científico es su formato rígido que en muchas ocasiones nos viene impuesto, ya sea por una revista o universidad o por las propias costumbres de nuestra disciplina. Por ejemplo, una tesis suele estar dividida en capítulos, debe tener referencias bibliográficas con un estilo determinado y se inicia con un índice general, uno de tablas y otro de figuras así como con un glosario de términos. También suele llevar un resumen del contenido al principio y se separa el trabajo adicional en apéndices. Todo esto implica diferentes formatos para las partes (numeración de las páginas y secciones, estilo de los encabezados…) y cierta planificación. Sin planificar se puede uno volver completamente tarumba, lo digo conocimiento de causa, el control de versiones me salvó más de una vez de romper la tesis sin remedio.

Es por ello que primero veremos cómo organizar el documento en cuestión y luego haremos un índice, un glosario y hasta unas lista de referencias.

Seguir leyendo →

Curso no convencional de LaTeX: el espacio en blanco

Seguimos investigando el formato en LaTeX. ¡Hoy moveremos las cosas por la página!


Como hemos visto en anteriores entregas, LaTeX gestiona el espacio en blanco él solito. Esto tiene varias implicaciones:

  • Le da igual que pongamos un espacio o sesenta y cuatro entre dos palabras, para él serán un único espacio.
  • Partirá las líneas donde mejor le venga a no ser que nosotros le obliguemos a hacerlo en un sitio determinado, dónde hayamos saltado de línea en el editor le da absolutamente igual. Lo mismo puede decirse de las páginas.

  • Dos trozos de texto que no estén separados por una línea en blanco pertenecerán al mismo párrafo a no ser que le digamos expresamente que no es así.

  • No pintará una línea en blanco a no ser que le digamos expresamente que lo haga por muchas líneas en blanco que tengamos en el editor.

Así visto parece que es malvado y que le gusta fastidiarnos, pero que él tome las decisiones de formato tiene la grandísima ventaja de que obtenemos un documento con pinta profesional con muy poco esfuerzo.

Seguir leyendo →

El porqué del curso de LaTeX

Hoy os voy a contar un poco del trasfondo del Curso no convencional de LaTeX, por qué empecé a escribirlo y qué supone para mí. No os preocupéis que pronto llegará la siguiente entrada, no todo va a ser hablar sobre mi vida.

Publiqué la idea de escribir un cursete de LaTeX el 13 de noviembre del año pasado, un mes después de terminar de escribir la tesis y un mes antes de defenderla. Fue un tiempo muy raro ese, estaba preparando la presentación, el ambiente en el trabajo era horrible y no sabía qué iba a hacer con mi vida. Es fácil entender que muy motivada no estaba.

Seguir leyendo →

Curso no convencional de LaTeX: la página

En el capítulo anterior estuvimos hablando de los diferentes estilos que le podemos dar al texto, ahora nos centraremos en el formato de la propia página.

La página

Vamos a ver cómo configurar cuatro cosas que los que venimos de editores tipo Libre Office echamos de menos: la alineación, el interlineado, los márgenes y la sangría. Va un spoiler:

There is a LaTeX package for it

Seguir leyendo →

Curso no convencional de LaTeX: formas, tamaños y colores

Con este título tan críptico quería hacer referencia al formato del texto. Hasta ahora hemos escrito cosas pero nos hemos conformado con el que nos aparece por defecto, hoy vamos a aprender a cambiar el tamaño y estilo de la letra y a escribir en diferentes colores. Pero para ello antes de nada tenemos que entender qué es una clase y cómo afecta a nuestro documento.

Clases

Lo primero que tenemos que saber es que el formato de nuestro documento está definido por su clase. Ahí pondrá cómo de grande tienen que ser los títulos, cuánto espacio tiene que haber entre los ítems de una lista o el tamaño de los márgenes. Estas clases pueden ser las típicas article o book, unas que vivan en un paquete como las clases Tufte o incluso unas que hayamos escrito nosotros mismos. Son simplemente un archivo cls lleno de definiciones.

La clase del documento la establecemos en la definición inicial:

% Usar la clase memoir
\documentclass{memoir}

Ahora que sabemos que el estilo de nuestro documento lo decide la clase, vamos a ver cómo cambiar alguna cosa puntual en el documento. Digo puntual porque si queremos, por ejemplo, que todos los títulos de sección sean en cursiva es preferible que redefinamos la orden en cuestión. Ya haremos eso en el futuro, no os preocupéis.

Formato de texto

Empecemos modificando el texto. Vamos a cambiar su tamaño, le aplicaremos diferentes estilos y, por último, haremos una pequeña introducción al color en LaTeX.

Tamaño

La manera en la que LaTeX trata el tamaño de letra es bastante original: coge como referencia el tamaño de la letra del cuerpo del documento y define los demás tamaños de manera relativa respecto a este. Así, si cambiamos el tamaño de letra del cuerpo todo lo demás cambia en consonancia.

Recordemos que el tamaño de letra del cuerpo lo podemos establecer como argumento opcional en \documentclass:

\documentclass[11pt]{article}

Si no ponemos nada, usará 10pt por defecto.

En esta tabla del libro sobre LaTeX en Wikibooks están los comandos para agrandar y reducir la letra y su respectivos tamaños de letra según el tipo de documento que estemos creando. Tanto article como book son parte de las clases estándar.

Para usar cualquiera de estos comandos hay dos opciones, usarlos dentro de una línea o como entorno. Si los usamos en la propia línea, harán efecto hasta el final del grupo (una zona delimitada entre llaves) o entorno actual. Si la zona de aplicación no está delimitada, el tamaño de letra se mantendrá hasta encontrarse con otro comando de tamaño o hasta el final del documento. Veamos un ejemplo para entenderlo mejor:

Texto normal {\Huge Texto gigantesco}

\normalsize Texto normal hasta nueva orden

\section{\Huge Título de sección enorme}

Texto normal

\begin{quote}
  \Large Letra grande solo para la cita
\end{quote}

Texto normal de nuevo

\small Texto pequeño hasta el final del documento

Si el trozo de texto que queremos personalizar es muy largo, tal vez merezca la pena usar el entorno para ganar en legibilidad:

\begin{tiny}
    Miniletrilla 
\end{tiny}

También podemos establecer otros tamaños de letra como haríamos en los editores de toda la vida. Para ello utilizamos el comando \fontsize:

\fontsize{tamaño}{baseline skip}\selectfont Texto

Podemos facilitar ambos argumentos en diferentes unidades, si no ponemos más que el número, LaTeX entenderá que estamos hablando de puntos. El segundo argumento es importante, ya que fija la distancia \baselineskip, es decir, la distancia entre las partes inferiores de dos líneas sucesivas. Suele ser 1.2 veces el tamaño de fuente1.

Si utilizamos este sistema es preferible que usemos una fuente vectorial, así estará disponible en cualquier tamaño2. Por ejemplo, con Computer Modern es probable que nos salga un aviso de este estilo:

LaTeX Font Warning: Font shape `OT1/cmr/m/n' in size  not available
(Font)              size  substituted on input line 25.

Esto ocurre porque la fuente Computer Modern es del tipo bitmap, es decir, las letras están formadas por puntitos. Esto implica que hay versiones de la fuente para tamaños concretos, no para todos. En este caso, lo más fácil es pasarnos a Latin Modern (\usepackage{lmodern}) que es igualita y como es OpenType (y por lo tanto vectorial) no tiene este problema. Además es compatible con la codificación T1, algo que necesitamos si vamos a escribir acentos.

Forma

De momento en el tema de las formas vamos a ignorar el tipo de fuente y vamos a hablar de negritas, cursivas y esas cosas. Sobre el tipo de fuente hablaremos en el futuro, que da para rato.

Una cosa que aprendí yo hace poquito es que en LaTeX el estilo de cada letra pertenece a una familia, una serie y una forma:

  • La familia indica cómo es la fuente: con serifas o roman (\rmfamily), sin serifas (\sffamily) o monoespaciada (\ttfamily)
  • La serie hace referencia al grosor del trazo: fino (\lfseries), medio (\mdseries) o grueso (\bfseries)
  • La formas como su nombre indica describen la forma de las letras: recta (\upshape), cursiva (\itshape), oblicua (\slshape) o versalita (\scshape).

La letra por defecto tiene serifas, es de grueso medio y recta, es a lo LaTeX denomina \normalfont. Podemos hacer otras combinaciones siempre con un elemento de cada grupo. Saber esto es especialmente útil cuando estamos definiendo nuestro propio estilo.

Podemos activar diferentes familias, series y formas con diferentes comandos3:

  • \textbf{} pone el texto en negrita
  • \textit{} sirve para activar la cursiva
  • \texttt{} escribe en letra de máquina de escribir o monoespaciada
  • \textsc{} para las versalitas
  • \textnormal{} vuelve a \normalfont

Hay claramente un patrón, ¿verdad?

Podemos anidar estos comandos y escribir en letra monospaciada, cursiva y negrita simultáneamente si nos parece que es una buena idea. En cualquier caso, este es un tema complejo y esto no deja de ser una explicación un poco por encima, en las referencias podéis encontrar más información.

Como veis, no aparece la opción de subrayar porque es una muy mala decisión tipográfica que proviene de los tiempos en los que se escribía a máquina. Si aun así queréis subrayar porque sois tercos como mulas, lo que estáis buscando es el comando \underline{}. También tenéis el paquete ulem, que proporciona el comando \ul para subrayar y del que me niego a
hablar.

Una cosa interesante es el comando \emph{} que sirve para enfatizar. En general se comporta como la cursiva aunque con un par de pequeñas diferencias:

  • Depende del contexto, por ejemplo, si enfatizamos un trozo que estaba ya en cursiva se pone recto:
\textit{Texto en cursiva \emph{texto recto}}
\emph{Texto en cursiva \emph{texto recto}} 
  • Podemos modificarlo para enfatizar a nuestro gusto, ya sea en negrita, con colores o lo que sea. Es precisamente lo que hace el paquete ulem (underline emphasis)

Color

¡Por fin llegamos al color! Tenía ganas ya, es cansino todo en blanco y negro. Como suele ser habitual, para usar colores en LaTeX necesitamos un paquete: xcolor, la evolución del paquete color. Lo cargamos en el preámbulo con unas pocas opciones que nos facilitan la vida:

\usepackage[usenames,dvipsnames,svgnames,table]{xcolor}
  • usenames permite que llamemos a los 16 colores básicos por su nombre en lugar de por su definición
  • dvipsnames nos da acceso a otros 64 colores extra
  • svgnames añade otros 150 colores más
  • table nos deja usar colores en las tablas

Tenéis una explicación sobre los colores disponibles en el apartado 2.4 del manual de xcolor.

Para cambiar el color del texto podemos usar tanto \textcolor como \color:

\textcolor{red}{texto de color rojo}

{\color{magenta} texto en color rosa raro}

Al igual que ocurría con los comandos para cambiar el tamaño de letra, en este caso color afecta hasta el final del grupo.

También podemos definir nuestros propios colores con \definecolor dándoles un nombre o directamente cuando los vayamos a usar. Para ello necesitamos elegir un modelo de color (rgb, cmyk, HTML, …) y darle el valor correspondiente:

% RGB
\definecolor{azulito}{rgb}{0.36, 0.54, 0.66}

% HTML (en hexadecimal y mayúsculas)
\definecolor{otroColor}{HTML}{4070A0}

% Definir directamente al usarlo
{\color[HTML]{4070A0} texto en color}

Definir nuestros propios colores es especialmente útil cuando queremos combinar los colores del texto con alguno específico de una imagen o si las opciones dvipsnames y svgnames no nos funcionan por algún motivo. En la página LaTeX color hay montones de definiciones de colores para que empecemos a jugar.

El resumen

Vamos a hacer una recapitulación sobre lo que hemos visto hoy, que es largo y denso:

  • Tamaño: los tamaños en LaTeX son relativos y se cambian con comandos que van de \tiny para la letra más pequeña a \Huge para la más grande. También se puede establecer un tamaño de fuente concreto, pero con cuidado.

  • Forma: los estilos de las letras se dividen en familias, series y formas que pueden combinarse entre sí. A cada elemento le corresponde un comando que activa un formato específico. El texto por defecto tiene serifas, es de grueso medio y recto, se conoce como \normalfont.

  • Color: para usar colores en LaTeX necesitamos el paquete xcolor. Sus diferentes opciones nos dan acceso a un número de colores predefinidos pero también existe la posibilidad de definir unos nosotros con \definecolor{modelo}{definición}. Aplicamos al texto cualquiera de estos colores con \textcolor{color}{texto} o con \color{color}.

Referencias

Classes en The TeX catalogue

What are the available “documentclass” types and their uses? en StackExchange

Tufte-LaTeX en CTAN

LaTeX/Fonts en Wikibooks

Font sizes, families, and styles

Font selection in LaTeX: The most frequently asked questions (pdf)

LaTeX font commands

The fontspec package


Espero que os haya resultado interesante el tema del formato de texto en LaTeX. Mañana configuraremos los márgenes, el interlineado y la sangrías de la página. Todo ello iba a ser una única entrada pero se me estaba yendo de las manos totalmente.

Os dejo con mi inspiración para esta entrada:


  1. He de decir también que ponernos a cambiar estas cosas sin dominar es el camino directo al infierno del LaTeX en el que todo queda mal y arreglamos una cosa y se rompe otra y no sabemos por qué. 
  2. Para una explicación mejor sobre los tipos de fuente podéis echarle un ojo al artículo de la Wikipedia
  3. Los comandos del párrafo anterior también realizan esta misma función aunque no son exactamente iguales. Afectan al grupo o entorno actual. 

Curso no convencional de LaTeX: a vueltas con el idioma

Hoy os voy a hablar de algo en lo que suele haber bastante lío en LaTeX: la configuración de idioma. Creo que he conseguido más o menos entender cómo va, así que voy a intentar explicar qué paquetes tenemos que usar y por qué. Es una entrada que entra bastante en detalle, porque me gusta saber el motivo de hacer las cosas, si no os apetece leer toda la chapa (es mucha chapa) podéis ir directamente al resumen final.

Ya sé que me estoy saltando el índice del curso a la torera, ved esto como un interludio, al fin y al cabo el idioma hay que configurarlo tarde o temprano. Yo prefiero temprano.


La cuestión es que si no escribimos en inglés, tenemos que configurar LaTeX para que se adapte a nuestro idioma. Para ello, necesitamos elegir un paquete de idioma y una codificación.

El paquete de idioma

El paquete de idioma realiza dos funciones principales:

  • Gestiona que las palabras claves como Capítulo o la fecha se escriban en el idioma que hemos elegido.
  • Aplica la silabación (por donde nos parte una palabra cuando no cabe en la línea) correcta para el idioma concreto, así como otras reglas tipográficas.

Seguir leyendo →