Introducción a LaTeX – Guía 01

La filosofía de LaTeX

El proceso para la generación profesional de un documento escrito se lo puede dividir en tres etapas:

  • Escritura: es cuando el autor plasma sus ideas concentrándose únicamente es el fondo del documento más no en su forma (formato), entregando un manuscrito.

  • Maquetación: es cuando el maquetador decide el formato del documento (tamaño de página, márgenes, número de columnas, tipografía, espaciado, etc.), entregando una lista de instrucciones a seguir.

  • Composición: es cuando el compositor usa el manuscrito del autor y la lista de instrucciones del maquetador para generar el documento final a ser publicado.

Con esto en mente, el autor debe concentrarse únicamente en escribir, pues es el maquetador, quien con su experticia en la diagramación de textos, decide el formato adecuado.

Dado que, no siempre contamos con el equipo necesario (maquetadores y compositores) para la generación de un documento escrito profesional, varios gestores de texto (como Microsoft Word) generaron entornos para cargar todo este trabajo al autor, proporcionando un sistema que lo que se ve en pantalla es lo que se obtiene como resultado. Esto coloca una carga extra sobre los autores que ahora deben lidiar con el formato del documento en lugar de enfocarse en escribir.

Para salvarnos de esto, Donald Knuth y Leslie Lamport (ambos matemáticos) nos regalaron, respectivamente, las siguientes herramientas: TeX y LaTeX. Antes de ver qué son estas herramientas, podemos decir, a muy breves rasgos, qué hacen:

  • LaTeX es un maquetador de documentos, y

  • TeX es un compositor de documentos.

Así, si nos ayudamos de estas herramientas, como autores, podemos dedicarnos a nuestra labor, es decir dedicarnos solo a escribir.

Por otro lado, siempre es necesario tener cierta comunicación con nuestro maquetador, por ejemplo, decirle qué partes de nuestro texto son títulos o que partes son una lista numerada; esto lo podemos realizar colocando marcas dentro de nuestro texto y dado que no queremos perder atención mientras vamos escribiendo, lo mejor sería que estas marcas también estén de forma escrita, por ejemplo:

(esto es un título de sección) Filosofía de LaTeX (aquí termina el título)

El proceso para la generación...   

Ahora, dado que nuestro maquetador será un sistema informático, será necesario que estas marcas sean estandarizadas de tal forma que LaTeX siempre las entienda, por esta razón, LaTeX cuenta con toda una serie de marcas espaciales, que se denominan comandos, haciendo que el ejemplo anterior quede de la siguiente manera:

\section{Filosofía de LaTeX}

El proceso para la generación...

Al conjunto de comando se lo conoce como lenguaje LaTeX o código LaTeX, por lo tanto, podemos decir que LaTeX es un lenguaje de marcado.

Una vez que hemos terminado de escribir nuestro texto, colocando algunas marcas para darle indicaciones a LaTeX, es necesario realizar un proceso para que nuestro maquetador interprete nuestras marcas y, junto con nuestro compositor, genere el documento final. A este proceso se lo denomina compilación es realizado por un compilador. El principal compilador del lenguaje LaTeX se llama, de igual forma, compilador LaTeX, aunque existen otro como pdfLaTeX. Al realizar este proceso con el código del ejemplo anterior, obtenemos nuestro resultado final: el inicio de esta sección.

Como acabamos de ver, al referirnos a LaTeX, podemos estar haciendo mención a varias cosas, pero todas ellas encaminadas a un mismo propósito: que el autor se concentre solo en escribir su documento, de todo lo demás se encarga LaTeX.

¿Qué necesitamos?

En primer lugar, dado que solo debemos concentrarnos en escribir nuestro documento y colocar las marcas adecuadas para que LaTeX haga todo lo demás, necesitamos únicamente un editor de texto plano, de este tipo hay muchos: Bloc de notas, TextEdit, Gedit; sin embargo, dado que vamos a escribir código, es recomendable utilizar un editor especializado para LaTeX o que tenga complementos para código LaTeX. Algunas opciones son: TeXMaker, Kile, WinEdt o Visual Studio Code; pero como se mencionó, basta con un simple Bloc de notas.

Por otro lado, necesitamos todos los programas necesarios para generar la compilación, aunque podríamos instalarlos uno por uno, es mejor instalar todo en conjunto. Para esto, existen las distribuciones de LaTeX que nos instalan todos los programas necesarios1; algunas de estas distribuciones son: MiKTeX, MacTeX, TeXLive.

Una vez que tengamos esto, podemos escribir en las siguientes líneas las siguientes líneas en un archivo y llamarlo, por ejemplo, MiPrimerArchivo.tex:

\documentclass[11pt]{article}

\begin{document}
    Hola Mundo
\end{document}

Notemos que la extensión del archivo es .tex, con esto indicaremos a LaTeX que este es un archivo donde está el manuscrito que realizamos, es decir, todo archivo que quiera compilarlo con LaTeX debe tener extensión .tex.

Ahora, para pedir a LaTeX que realice todo el trabajo para generar nuestro documento final, debemos realizar la compilación del archivo MiPrimerArchivo.tex. Esto lo podemos lograr abriendo un terminal de nuestro computador en la misma carpeta que tenemos nuestro archivo2 y escribir:

    pdflatex MiPrimerArchivo.tex

Así, pedimos que se compile nuestro archivo utilizando el compilador pdfLaTeX. Podemos ver esto en la figura siguiente, ejecutamos este comando (damos enter) y LaTeX se pondrá manos a la obra y nos devolverá nuestro primer archivo PDF generado utilizando LaTeX.

Captura de la ventana de comandos ejecutando LaTeX en Windows.

¿Todo esto para dos palabras?

Sí, pero con dos indicaciones: primero, los editores especializados tiene «botones» especializados para que hagan todo el proceso de compilación con un solo clic; segundo, es el mismo proceso tanto para nuestro archivo de dos palabras como para un libro de cientos de páginas. Además, ya conocemos brevemente la secuencia de trabajo con LaTeX:

  1. Escribir nuestro documento.

  2. Compilar nuestro documento.

Una consideración adicional, si deseamos obviar todo esto de la instalación, podemos usar servicios en la nube los cuales ya tienen instalado las distribuciones necesarias y nos presentan un editor de texto especializado para escribir código LaTeX, la más popular de todas (y en la cual basaremos estas guías) es Overleaf, en la cual solo necesitamos crearnos una cuenta y ya podremos iniciar a escribir nuestros documentos. Aquí, podemos dividir nuestro trabajo en proyectos e ingresando a cada proyecto ya podremos escribir nuestro texto y compilarlo; podemos ver la interfaz de Overleaf en la figura siguiente.

Interfaz de nuestros documentos en Overleaf.

Antes de iniciar

Consideraciones sobre el editor

Al trabajar con LaTeX, casi la totalidad del tiempo estaremos escribiendo código. Por esta razón para que nuestro trabajo sea eficiente es necesario tener adecuadamente configurado nuestro teclado, un video sobre este tema se puede encontrar en el siguiente enlace: ¿Cómo configurar cualquier teclado para escribir en español?

Por otro lado, podemos aprovechar las ventajas de los atajos de teclado de nuestro editor y de esta forma realizar un uso casi exclusivo del teclado para el desarrollo de nuestro trabajo. Los principales atajos de teclado del editor de Overleaf son:

  • Ctrl + enter para compilar.

  • Ctrl + / para comentar el código.

  • Ctrl + Home mueve al inicio del documento.

  • Ctrl + End mueve al final del documento.

  • Ctrl + L mueve a la línea especificada.

  • Ctrl + D elimina la línea actual.

  • Ctrl + B texto en negrita.

  • Ctrl + I texto en itálica.

  • Ctrl + F para buscar y reemplazar.

  • Shift + Tab para eliminar sangría.

Una lista completa se puede encontrar en:
 https://es.overleaf.com/learn/how-to/Hotkeys

Consideraciones sobre la redacción

Al momento de redactar un texto, debemos tener en cuenta la siguiente premisa: Todo dentro de un texto o es un párrafo, o es parte de un párrafo, o es un título, o es un flotante (imagen, tabla, etc.). Dado que, en general, lo que predomina en un texto son párrafos, asumiremos que, a menos que se indique lo contrario, todo lo que escribimos es un párrafo o parte de uno.

Algunos sitios de utilidad

Antes de comenzar el trabajo en LaTeX es importante tomar en cuenta los siguientes enlaces para los recursos que nos serán de utilidad a lo largo del curso:

Generalidades

Regresemos a nuestro archivo MiPrimerArchivo.tex:

\documentclass[11pt]{article}

\begin{document}
    Hola Mundo
\end{document}

En la primera línea de este archivo, podemos notar el comandos \documentclass[11pt]{article}; en general esta es la sintaxis básica de todo comando de LaTeX:

  • Todo comando de LaTeX inicia con la barra inversa «\» .

  • Luego de la barra inversa, sin espacio, va el nombre del comando (en este caso, el nombre del comando es documentclass).

  • A continuación, entre corchetes, se coloca los argumentos opcionales; como su nombre lo indica, estos argumentos podría no ser necesarios, en cuyo caso, simplemente se elimina esta parte quedando: \documentclass{article}.

  • Finalmente, entre llaves, se coloca los argumentos obligatorios; existen comandos que no requieren ningún argumento obligatorio, en esos casos, el comando solo cuenta con la barra inversa y el nombre del comando.

En nuestro caso, nuestro comando \documentclass[11pt]{article} sirve para definir el formato general del documento, algunas posibilidades disponibles para el argumento obligatorio son

  • article;

  • report;

  • book;

  • slides;

  • beamer;

  • letter;

  • standalone;

  • minimal.

Cada una de estas definirá el formato general del documento como la geometría de la página, el formato para encabezados, títulos, etc. Por otra parte, el argumento opcional 10pt define el tamaño de fundición (tamaño de letra), otras posibilidades para este argumento son:

  • 10pt;

  • 11pt;

  • 12pt.

Este argumento es opcional dado que, si no lo colocamos, tomará el valor por defecto que, en el caso de article, es de 10pt, es decir, colocar

\documentclass[10pt]{article}

es equivalente a colocar

\documentclass{article}

El siguiente comando que observamos en nuestro archivo es \begin{document}, este marca el inicio del cuerpo del documento, todo lo que se coloque antes de este comando, se lo denomina preámbulo del documento. Finalmente, tenemos el comando \end{document}, el cual marca el final del cuerpo del documento.

Todo archivo debe tener, como mínimo, estos tres comandos; el primer comando que aparezca en el documento siempre debe ser \documentclass y todo lo que esté luego del comando \end{document} será ignorado en la compilación.

Para compilar un documento exitosamente se requiere que siempre exista contenido entre \begin{document} y \end{document}. Si intentamos compilar un documento con esta sección vacía, este proceso se detendrá sin resultado alguno.

El comando \begin tiene un carácter especial pues define lo que se conoce como ambientes, por lo cual, siempre que se coloque un comando \begin, debe estar emparejado con un comando \end para que se delimite el alcance del ambiente. Por ejemplo, para utilizar un ambiente ficticio llamado foo, se debe utilizar el siguiente esquema:

Texto fuera del ambiente foo.
\begin{foo}
    Texto dentro del ambiente foo.
\end{foo}
Texto fuera del ambiente foo.

En los párrafo anteriores, utilizamos el ambiente document para escribir todo el contenido de nuestro documento.

Paquetes

LaTeX cuenta con una abundante cantidad de comandos y ambientes que podemos utilizar para escribir nuestro documento, por ejemplo, el comando \today, el cual imprime la fecha en la que se compila el documento. Veamos el siguiente ejemplo, el código:

\documentclass[11pt]{article}

\begin{document}
    La fecha en que se escribió este documento es \today.
\end{document}

genera el siguiente texto:

La fecha en que se escribió este documento es October 31, 2021.

Como podemos apreciar, se imprimió lo que esperábamos, pero en inglés, ya que es el idioma por defecto en el que trabaja LaTeX y no le indicamos que íbamos a escribir en español. Para esto, necesitamos introducir lo que se conoce como paquetes.

Un paquete de LaTeX es un archivo que incluye comandos destinados a agregar nuevas funciones o redefinir funciones ya existente o facilitar su uso.

La lista oficial de paquetes disponibles, junto con su documentación, se pueden encontrar en:
 https://ctan.org/

Para incluir un paquete se debe utilizar la siguiente sintaxis, siempre en el preámbulo del documento:

\usepackage[Opciones del paquete]{Nombre del paquete}

Para escribir textos en español, los paquetes básicos que se debe utilizar son los siguientes:

  • babel: Gestiona el idioma del documento, en nuestro caso, utilizaremos la opción spanish.

  • inputenc: Gestiona la codificación de caracteres3 de entrada, esto nos permitirá escribir directamente desde nuestro teclado los caracteres especiales del español (por ejemplo las tildes). La opción para el paquete depende del editor que estemos utilizando, en nuestro caso, al utilizar Overleaf, colocaremos la opción utf8.

  • fontenc: Gestiona la codificación de caracteres de salida, esto nos permitirá que, al momento de tener nuestro documento PDF y copiar texto de él, los caracteres especial sean reconocido correctamente. La opción que utilizaremos es T1.

Con los paquetes mencionados es posible comenzar la composición de un documento, quedando nuestro ejemplo de la siguiente manera:

\documentclass[10pt]{article}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[spanish]{babel}

\begin{document}
    La fecha en que se escribió este documento es \today.
\end{document}

genera el siguiente texto:

La fecha en que se escribió este documento es 31 de octubre de 2021.

Conforme avancemos en los contenidos, introduciremos nuevos paquetes que ampliarán las herramientas que disponemos. No obstante, para el desarrollo de un documento, se recomienda trabajar únicamente con los paquetes requeridos para evitar conflictos en la compilación del documento.

El paquete babel

Como mencionamos anteriormente, el paquete babel gestiona el idioma del documento, con esto, nos referimos a que adapta la estructura del documento a las particularidades propias del idioma. Algunas de estas particularidades son:

  • Nombres de los elementos del documento: por ejemplo, los títulos de resúmenes, tablas de contenidos o la misma fecha que vimos anteriormente, entre otros.

  • Separación en sílabas de las palabras para cortes al final de cada línea.

  • Formato de los párrafos, formato de números romanos, formato de separador decimal, formato de listas, formato de sangría.

El paquete babel admite alrededor de 50 idiomas diferentes y dentro de cada idioma tiene varias opciones para configurar detalles especiales. Por ejemplo, para el idioma español el experto en ortotipografía4 Javier Bezos planteó y programó las opciones que pueden ser utilizadas por el paquete babel.

La lista de opciones para el idioma español del paquete babel puede ser consultada en:
 http://www.texnia.com/spanishopt.html
Las bases para estas opciones pueden ser consultadas en:
 http://www.texnia.com/spanish2.html

El paquete geometry

Otro paquete importante, pero no fundamental, es el paquete geometry, el cual nos ayuda con una de las primeras tareas a realizar en la preparación de un documento: definir su tamaño, márgenes y otras medidas.

Por ejemplo, si deseamos cambiar el tamaño de hoja a un tamaño A5, en orientación horizontal y con 2 cm de margen a cada lado, basta colocar las siguientes opciones al incluir el paquete:

\usepackage[a5paper, landscape, margin=2cm]{geometry}

En cuanto a tamaño de hoja, existen varios argumentos que pueden ser utilizados, los más comunes pueden ser los de la serie A de la ISO para utilizarlos, estos están descritos en el Cuadro siguiente. También se puede definir el tamaño de hoja de forma personalizada mediante los argumentos paperwidth, paperheight o papersize de la siguiente manera:

\usepackage[papersize = {10cm, 20cm}]{geometry}

o, de forma equivalente:

\usepackage[paperwidth = 10cm , paperheight = 20cm]{geometry}
Algunos tamaños de hojas disponibles
Argumento Normativa Dimensiones
a0paper ISO – DIN Serie A0 841mm \(\times\) 1189mm
a1paper ISO – DIN Serie A1 594mm \(\times\) 841mm
a2paper ISO – DIN Serie A2 420mm \(\times\) 594mm
a3paper ISO – DIN Serie A3 297mm \(\times\) 420mm
a4paper ISO – DIN Serie A4 210mm \(\times\) 297mm
a5paper ISO – DIN Serie A5 148mm \(\times\) 210mm

En lo que respecta a orientación de la hoja, para horizontal se utiliza el argumento landscape y para vertical, portrait; sin embargo esta última es la opción por defecto, por lo tanto podría omitirse. Finalmente, para los márgenes, existen varias formas de definirlas; si queremos tener las mismas medidas en todos los márgenes podemos colocar

\usepackage[margin = 4cm]{geometry}

si queremos dar una misma medida a los márgenes verticales (arriba y abajo) y hacer lo propio con los horizontales (izquierda y derecha), podemos colocar

\usepackage[vmargin = 2cm, hmargin = 3cm]{geometry}

por último, si queremos dar medidas diferentes a cada márgen, colocamos

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

o, de manera equivalente5,

\usepackage[rmargin = 2cm, lmargin = 1cm, 
            tmargin = 3cm, bmargin = 4cm]{geometry}

El paquete geometry dispone de muchas más opciones para controlar varios otros aspectos de la geometría de la hoja y se puede consultar en su documentación.

La documentación del paquete geometry puede ser consultada aquí:
 https://ctan.org/pkg/geometry

Con lo aprendido hasta ahora, tenemos que la estructura base de cualquiera de nuestros documentos puede verse algo así:

\documentclass[11pt]{article}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[spanish]{babel}

\usepackage[a4paper, margin = 3cm]{geometry}

\begin{document}
    Mi primer documento en \LaTeX.
\end{document}

  1. Algunas distribuciones vienen también con editores de texto especializados para LaTeX.↩︎

  2. En Windows, esto se consigue abriendo el explorador de archivos en la carpeta que tengamos nuestro archivo y escribiendo en la barra de direcciones el texto: cmd y dando un enter↩︎

  3. Ver más: https://es.wikipedia.org/wiki/Codificacion_de_caracteres↩︎

  4. Conjunto de normas para el uso correcto de la tipografía.↩︎

  5. Notemos que realizar un salto de línea entre las opciones no ocasiona ningún inconveniente y mejora la visualización del código.↩︎

Deja una respuesta

Tu dirección de correo electrónico no será publicada.