Archivo de la etiqueta: curso

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: 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 →

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 →

Curso no convencional de LaTeX: ecuaciones

¡Por fin regresa el minicurso de LaTeX a sus hogares! Siento la tardanza, pero ha habido una tesis que presentar, un paro que pedir y un proyecto que crear.


Siguiendo con el desmenuce de la sintaxis, hoy vamos a hablar de ecuaciones, el motivo por el que mucha gente (científicos) se pasan a LaTeX.

Como dijimos el otro día, hay dos tipos de ecuaciones en LaTeX:

  • las que van dentro de una línea, que se escriben entre signos de dólar y se suelen conocer como inline
  • las que tienen línea propia, que usan el entorno equation o el atajo1 \[...\]

Aquí tenemos un ejemplo usando los dos tipos:

\begin{equation}
e^{i\pi} + 1 = 0
\end{equation}

donde $i = \sqrt{-1}$

Como veis, escribimos las ecuaciones mediante comandos, algo que inicialmente parece un atraso pero que cuando cogemos un poco de práctica, es terriblemente eficaz. Si estáis usando un editor específico, tendréis una barra con los símbolos más usados, es una buena forma de empezar con las ecuaciones. Más abajo os hablo de la sintaxis más en detalle y doy unos ejemplos.

Seguir leyendo →

Curso no convencional de LaTeX: insertando figuras

En las próximas entregas del cursito de LaTeX vamos a desmenuzar lo que explicamos en la entrada anterior en trocitos que se digieran mejor. Concretamente, vamos a empezar por las figuras. Voy a intentar empoderaros para que juguéis sin miedo, no sé si lo conseguiré.

Empecemos


Decíamos el otro día que para insertar figuras nos hacían falta dos cosas:

  • El paquete graphicx1
  • El comando \includegraphics[opciones]{ruta}. Aprovechamos para aprender que los parámetros obligatorios van entre llaves y los opcionales entre corchetes.

Seguir leyendo →