¿Qué es LATEX?
LATEX es un conjunto de macros para TEX debido originalmente a Leslie Lamport para
facilitar el uso de TEX.
Tanto TEX como LATEX son programas de código abierto, liberados bajo la licencia LPPL.
Otra de las grandes ventajas de LATEX es que existen multitud de paquetes de código libre
para generar distintos tipos de documentos que pueden descargarse desde el repositorio
CRAN.
La página principal sobre LATEX es The LaTeX project.
Existen distintas distribuciones de LATEX y algunas de ellas son multiplataforma, es decir,
están disponibles para diferentes sistemas operativos.
Las distribuciones más comunes
son:
• TeXLive para Windows, Mac OSX y Linux.
• MiKTeX para Windows, Mac OSX y Linux.
• MacTeX para Mac OSX.
En sus respectivas páginas está explicado el procedimiento de instalación de cada una.
Junto a la distribución de LATEX es también habitual instalar algún editor de texto para
escribir el código fuente. En realidad puede usarse cualquier editor de texto que ya esté
instalado en nuestro sistema operativo, pero los existen entornos de edición especializados
que facilitan muchas de las tareas del proceso de composición de documentos con LATEX.
Los más comunes son:
• TexMaker.: Es un editor de texto libre, multiplataforma, con muchos asistentes
disponibles que permite previsualizar en tiempo real el documento final en pdf.
• Texstudio: Es otro editor libre y multiplataforma que incorpora aún más asistentes
que el anterior.
• Vim: Es un editor de texto simple de propósito general que también es libre y
multiplataforma. Incorpora paquetes o plugins específicos para facilitar la creación
de documentos con LATEX. Especialmente indicado para trabajar desde la terminal.
• Emacs: Es otro editor similar a Vim, muy extendido entre los usuarios que prefieren
usar la terminal.
• Visual Studio Code: Es un potente entorno de desarrollo multipropósito. Dispone
de paquetes para los lenguajes de programación más comunes, entre ellos LATEX.
Pero también se puede empezar a componer documentos sin necesidad de instalar nada
en el ordenador, usando un editor on-line como por ejemplo Overleaf.
A modo de ejemplo, empezaremos por crear un sencillo documento con el texto “Hola
LATEX”.
Para ello utilizaremos nuestro editor de texto preferido para crear un fichero de texto
con el nombre main.tex y el siguiente contenido:
Aunque más adelante se verá la estructura general del código fuente de un documento en
LATEX, a continuación se explica brevemente el contenido de este fichero:
1. En la primera línea se especifica el tipo de documento (article).
2. En la segunda línea se especifica el idioma del documento (spanish).
3. La tercera línea marca el comienzo del documento.
4. La cuarta línea contiene el texto del documento. \LaTeX es un comando que produce
la salida LATEX.
5. La quinta línea marca el final del documento.
Compilación
Para obtener el documento final hay que compilar el fichero fuente. Existen diferentes
formas de hacerlo y en los editores anteriores suele ser tan sencillo como hacer clic en un
botón o pulsar una combinación de teclas, pero en última instancia todos ellos hacen una
llamada al compilador de LATEX que es quien se encarga de convertir el código fuente en
el documento final.
Cada distribución de LATEX viene con varios compiladores. Los más habituales son:
• latex: Es el compilador más antiguo y genera documentos en formato dvi, que es
un formato independiente creado mucho antes que el formato pdf.
• pdflatex: Es el compilador más usado y genera documentos en formato pdf.
• xelatex: Es un compilador más moderno que admite caracteres Unicode en el
código fuente y el uso de tipografías más modernas.
En una terminal, la compilación de este documento sería tecleando el comando latex
main.tex, pdflatex main.tex o xelatex main.tex, dependiendo del compilador que
se quiera usar.
Al principio es muy habitual cometer errores en el código fuente, por lo que el proceso de
compilación fallará. En ese caso es importante leer los mensajes de salida del compilador
donde informará sobre el tipo de error y la línea donde se produjo el error, lo que facilitará
su corrección. Algunos entornos de edición como por ejemplo, Overleaf son capaces de
anticiparse a los errores de compilación y detectan errores de sintaxis o gramaticales
indicando el lugar exacto del error.
Esqueleto básico para pdflatex
El esqueleto básico del código fuente de un documento en español para compilar con
latex o pdflatex es el siguiente:
Antes de explicar las distintas partes de este esqueleto conviene mencionar varias cosas
sobre la sintaxis de algunos elementos básicos: • Comandos: Los comandos comienzan siempre por la barra invertida (backslash) \.
En muchas ocasiones van acompañados de argumentos obligatorios que se escriben
entre llaves {...} y opcionales que se escriben entre corchetes [...].
• Entornos: Los entornos, a diferencia de los comandos, son bloques de código sobre
los que se aplica alguna acción, y están delimitados siempre por un comando de
apertura \begin y otro de cierre \end.
• Comentarios: Al igual que en otros lenguajes del programación se pueden hacer
comentarios en el código fuente que no serán interpretados por el compilador. Para
ello se utiliza el símbolo de porcentaje % al comienzo del comentario.
• Símbolos reservados: Existe una serie de símbolos que están reservados para
funciones especiales.
– \: Indica el inicio de un comando.
– $: Declara el entorno matemático.
– { }: Inicia y finaliza un grupo.
– #: Indica el número de un argumento en la definición de comandos.
– %: Indica el inicio de un comentarios.
– &: Separa elementos en una tabla o fórmula.
– ˆ: Escribe un superíndice.
– _, Escribe un subíndice.
– ~, Indica por dónde se puede partir una palabra al final de una línea.
Para que aparezcan estos caracteres en el documento final es necesario escribirlos en
el código fuente precedidos por la barra invertida (\$, \{, \}, \#, \%, \&, \ˆ, \_, \~)
excepto la barra invertida que se escribe con el comando \backslash.
A continuación se explican las partes del esqueleto anterior.
Clase de un documento
La primera línea de un fichero con código LATEX indica la clase de documento que se va
a generar mediante el comando \documentclass.
En el ejemplo aparece un argumento
obligatorio que indica el tipo de documento que se desea crear, artículo (article), pero
se pueden crear otros tipos de documentos como informes (report), libros (book) o
cartas (letter). .
Y también aparecen dos argumentos opcionales, a4paper que indica
el tamaño de la hoja en el documento final (a4), y 10pt que indica el tamaño base de la
fuente utilizada en el documento (existe también 11pt y 12pt).
Preámbulo
El preámbulo es la parte que va después de la clase y antes del comienzo del cuerpo
del documento. En parte suele utilizarse para la carga de los paquetes de macros que
se van a utilizar en el documento y la configuración del documento. En el ejemplo el
preámbulo comienza con la carga de tres paquetes mediante el comando \usepackage: el
paquete inputenc que permite definir la codificación de los caracteres del código fuente
(conviene utilizar la codificación utf8 sobre todo si se van a utilizar caracteres no ASCII);
el paquete babel que permite definir el idioma del documento (spanish); y el paquete
fontenc que especifique las codificaciones1 de las fuentes (T1).
A continuación, se suelen configurar algunos aspectos del documento como podrían ser
los márgenes, encabezados y pies, el título, autor y fecha, y otras muchas posibilidades.
En el preámbulo también se pueden definir nuevos comandos LATEX o redefinir los ya
existentes.
Cuerpo
Contiene el texto del cuerpo del documento y tiene que ir dentro del entorno document.
Suele empezar con el comando \maketitle si se desea empezar el documento con el título,
autor y fecha que se hayan definido previamente en el preámbulo, y le sigue el comando
\tableofcontents que introduce la tabla de contenidos en el documento. Finalmente
iría el texto en sí con el contenido del documento.
Secciones y párrafos
Secciones y subsecciones
Normalmente un documento extenso se dividirá en secciones y subsecciones (o incluso
capítulos si se trata de un libro). Para definir las secciones de un documento se utilizan
los siguientes comandos:
• \chapter{Título del capítulo}. Crea un nuevo capítulo con el título indicado
y lo numera. Solo puede usarse cuando la clase del documento es book.
• \section{Título de la sección}. Crea una nueva sección con el título indicado
y la numera.
• \subsection{Título de la subsección}. Crea una nueva subsección con el título indicado y la numera.
• \subsubsection{Título de la subsubsección}. Crea una nueva subsubsección
con el título indicado y la numera.
Las secciones definidas con estos documentos aparecerán en la tabla de contenidos
automáticamente.
Existen versiones alternativas de estos comandos añadiendo un asterisco (\chapter*,
\section*, \subsection*, \subsubsection*) que crean encabezados de sección sin
numerar y que tampoco aparecerán en la tabla de contenidos.
Párrafos y cambios de línea
Para crear un párrafo nuevo basta dejar una o más líneas en blanco.
Si se quiere hacer un cambio de línea dentro de un mismo párrafo, se utiliza el comando
\newline o \\.
Justificación
Los párrafos se justifican por defecto a la izquierda y a la derecha. LATEX utiliza un
algoritmo que permite partir las palabras al final de una línea para obtener párrafos
con una buena estética (sin grandes espacios en blanco entre palabras). Pero también se
pueden justificar solo a la izquierda, solo a la derecha o centrados entre los márgenes.
Para ello se utilizan los siguientes entornos:
• flushleft: Justifica el texto a la izquierda.
• flushright: Justifica el texto a la derecha.
• center: Justifica el texto centrado entre los márgenes.
Formateo básico
Existen multitud de comandos para dar formato al texto de un documento, pero en esta
sección nos limitaremos a los más importantes.
Negrita, cursiva y subrayado
Para resaltar un texto habitualmente se utiliza negrita, cursiva o subrayado. Estos
formatos se aplican con los siguientes comandos:
• \textbf{...}: Pone el texto en negrita.
• \textit{...}: Pone el texto en cursiva o itálica.
• \emph{...}: Enfatiza el texto cambiando de estilo (si estamos en un entorno de
cursiva pasa a normal y si estamos en un entorno de texto normal pasa a cursiva).
• \underline{...}: Subraya el texto.
Familias de tipos de letra
Existen tres tipos de letra que se activan con los siguientes comandos:
• \texrm{...}: Texto normal (con serif). Es el tipo por defecto.
• \texsf{...}: Texto sin adornos (sin serif).
• \texttt{...}: Texto de máquina de escribir o monoespaciado (caracteres con la
misma anchura).
Perfiles de letra
Para cada tipo de letra existen también varios perfiles que se activan con los siguientes
comandos:
• \textup{...}: Activa el perfil recto. Es el perfil por defecto.
• \textit{...}: Activa el perfil de letra itálica.
• \textsl{...}: Activa el perfil inclinado.
• \textsc{...}: Activa el perfil de letra versalita (mayúsculas pequeñas)
Tamaños de letra
A diferencia de otros procesadores donde el tamaño de la fuente se indica en puntos
o pixels, en LATEX existen 10 tamaños predefinidos que se activan con los siguientes
comandos, de menor a mayor tamaño:
• \tiny
• \scriptsize
• \footnotesize
• \small
• \normalsize
• \large
• \Large
• \LARGE
• \huge
• \Huge
Existen paquetes que permiten definir tamaños más pequeños o mayores pero no suelen
ser necesarios en un documento normal.
Listas
Existen tres tipos de listas, no ordenadas, ordenadas y descriptivas (en lugar de marcas o
números los items de la lista están encabezados por texto), que se crean con los siguientes
entornos:
• itemize: Crea un lista sin numerar.
• enumerate: Crea una lista enumerada.
• description: Crea una lista de tipo descripción.
Dentro de estos entornos, cada elemento de la lista debe empezar en una línea nueva con
el comando \item. En el caso de las listas descriptivas, hay que proporcionar el texto del
item de la lista como un argumento obligatorio.
Tablas
Las tablas son uno de los elementos más complejos de LATEX, ya que, aunque es fácil crear
una tabla sencilla, aplicarles un formato más avanzado con justificación de columnas,
fusión de columnas o filas, márgenes de columnas, líneas de división, etc. suele ser bastante
más difícil, aunque algunos entornos de edición facilitan la tarea.
Existen multitud de
paquetes para personalizar las tablas pero en esta sección solo veremos lo más básico.
Para crear una tabla se utiliza el entorno tabular. Este entorno tiene como argumento
obligatorio el número de columnas de la tabla y su justificación, que se indica con una letra:
l izquierda, r derecha y c centrada, (por ejemplo lcr indica tres columnas, la primera
justificada a la izquierda, la segunda centrada y la tercera justificada a la derecha).
A continuación se introduce el contenido de la tabla, separando las filas con el comando
de cambio de línea \\ y dentro de cada línea separando las celdas con el comando &.
Imágenes
Para incluir una imagen o figura en un documento, además de disponer de la imagen del
fichero en un formato gráfico adecuado, es necesario cargar en el preámbulo el paquete
graphicx. Este paquete permite gestionar imágenes en los formatos gráficos jpg, png,
tiff, eps y pdf (los tres primeros son formatos de mapas de bits y los dos últimos
vectoriales).
Una vez cargado el paquete, para insertar una imagen en el documento basta con utilizar el
comando \includegraphics[opiones]{fichero}. Este comando tiene como argumento
obligatorio es el nombre del fichero con la imagen (incluyendo la ruta en el sistema de
ficheros local) y los siguientes argumentos opcionales para modificar el aspecto de la
imagen:
• height: Indica la altura de la imagen. Escala la imagen hasta esa altura.
• width: Indica la anchura de la imagen. Escala la imagen hasta esa anchura.
• scale: Factor de escalado de la imagen de 0 a 1.
• angle: Ángulo de rotación de la imagen. Rota la imagen en el sentido de las agujas
del reloj los grados indicados.
Fórmulas matemáticas
La escritura de fórmulas matemáticas es uno de los puntos fuertes de LATEX, y es por ello
que se utiliza tanto para la creación de documentos científicos o técnicos con contenido
matemático.
Para escribir una fórmula es necesario cambiar al modo matemático.
Existen distintas
formas de activar el modo matemático:
• $: Activa el modo matemático en linea, es decir, las fórmulas aparecerán en la
misma linea que el texto que las rodea. Para desactivar este modo hay que volver a
escribir el signo peso.
• $$: Activa el modo matemático display (desplegado), de manera que las fórmulas
aparecen en una línea aparte.
• El entorno equation también activa el modo matemático display pero además
asigna un número a la ecuación, para poder referenciarla en otras partes del
documento.
Símbolos matemáticos
Existe una infinidad de símbolos matemáticos que escriben mediante comandos. A
continuación se muestran los más habituales.
Letras griegas: Para escribir letras griegas se utilizan los siguientes comandos:


Es posible declarar nuevos operadores o funciones cargando el paquete amsmath con
el comando \DeclareMathOperator{comando}{texto}. Por ejemplo, para obtener las
versión de la función seno en español se puede definir DeclareMathOperator{\sen}{sen}
en el preámbulo y luego utilizar el comando \sen en el cuerpo para obtener la función
seno en español.
Otro paquete que incorpora aún más símbolos es amssymb.
Fracciones
Para escribir fracciones simples en línea se puede usar el operador aritmético / (por ejemplo
3/4), pero para fracciones más complejas o fracciones en modo display, conviene utilizar
el comando \frac{num}{den}, donde num es el numerador y den el denominador.
A su vez, se pueden escribir más fracciones en el numerador o el denominador, anidando
este comando.
Sumatorios, productorios e integrales
Para escribir sumatorios se utiliza el comando \sum_{sub}ˆ{sup}, donde sub es el
subíndice que indica el inicio de la suma y sup es el superíndice que indica el final de la
suma. Si se quieren omitir los índices de inicio y final de la suma, basta con el comando
\sum.
De manera análoga, para escribir productorios se utiliza el comando \prod_{sub}ˆ{sup},
donde sub es el subíndice que indica el inicio del producto y sup es el superíndice que
indica el final del producto. Si se quieren omitir los índices de inicio y final del producto,
basta con el comando \prod.
Del mismo modo, para escribir integrales definidas se utiliza el comando \int_{sub}ˆ{sup},
donde sub es el subíndice que indica el inicio de la integral y sup es el superíndice que
indica el final de la integral. Para integrales indefinidas, basta con el comando \int.
Sombreros
Es posible poner símbolos encima de otros símbolos, más conocidos como sombreros. Los
siguientes comandos sirven para poner distintos tipos de sombreros:
• \bar{...}: Linea horizontal para un carácter.
• \overline{...}: Línea horizontal para varios caracteres.
• \hat: Ángulo para un carácter.
• \widehat: Ángulo para varios caracteres.
• \vec{...}: Flecha para un carácter.
• \overrightarrow{...}: Flecha para varios caracteres.
Matrices
Las matrices se crean de manera similar a como se crean las tablas,
pero utilizando el entorno array en lugar del entorno tabular. Para encerrar la matriz
entre paréntesis se pone el comando \left( antes del entorno y el comando \right)
después.
El paquete amsmath incorpora varios entornos más específicos para matrices donde no es
necesario especificar el número de columnas, y tampoco los delimitadores:
• matrix: Matriz sin delimitadores (equivalente al entorno array)
• pmatrix: Matriz encerrada entre paréntesis.
• vmatrix: Matriz encerrada entre barras verticales (por ejemplo para determinates).
• Vmatrix: Matriz encerrada ente dobles barras verticales.
• bmatrix: Matriz encerrada entre corchetes.
• Bmatrix: Matriz encerrada entre llaves.
Teoremas
Para crear denificiones, teoremas, proposiciones, corolarios y otros tipos de enunciados
de sebe cargar el paquete amsthm y definir los tipos de enunciados en el preámbulo con
el comando \newtheorem{entorno}{texo}, donde entorno es el nombre del entorno y
texto el texto que aparecerá en el documento final como encabezado del enunciado.
Estos entornos admiten como argumento opcional un texto que se utiliza para dar nombre
al enunciado.
Los enunciados definidos con este comando aparecen por defecto numerados para poder
referenciarlos en otras partes del documento, pero se pueden definir entornos no numerados
con la variante del comando anterior \newtheorem*{entorno}{texo}
Para demostraciones se puede utilizar el entorno proof.
Referencias cruzadas y notas a pie
Otro de los puntos fuertes de LATEX es la gestión de las referencias cruzadas, es decir,
referencias a otras partes del documento, así como las notas a pie de página.
Referencias cruzadas
Como se ha visto, muchos elementos de un documento están enumerados: capítulos,
secciones, figuras, tablas, ecuaciones, teoremas, páginas, etc. Para poder referenciarlos,
cada elemento debe tener asignada una etiqueta única. Para asignar una etiqueta a
cualquier elemento numerado se utiliza el comando \label{etiqueta}. Este comando
debe ubicarse justo antes o después del elemento que quiere etiquetar.
Posteriormente, para hacer una referencia al elemento en otra parte del documento se
utiliza el comando \ref{etiqueta}.
Citas y referencias bibliográficas
Al igual que con las referencias cruzadas, LATEX hace un maravilloso trabajo con las citas
de referencias bibliográficas. Para ello se apoya en otro programa de gestión de referencias
bibliográficas llamado BibTeX, que viene incluido en la distribución estándar de LATEX.
BibTeX permite crear una base de datos de distintos tipos de documentos que después se
pueden citar en nuestro documento y después listar al final del documento las referencias
bibliográficas citadas con diferentes formatos.
También existe otro gestor de referencias bibliográficas llamado biber que soporta la
codificación de caracteres unicode, y por tanto es más apropiado si vamos a compilar
nuestro documento con xelatex.
Para incluir referencias bibliográficas en un documento primero hay que crear una base
de datos con las fuentes bibliográficas que vayamos a usar en un documento. Esa base de
datos se crea en un fichero de texto independiente con el formato que requiere BibTex
con extensión .bib.
La sintaxis para crear una nueva entrada bibliográfica en la base de datos es un poco
compleja al principio, pero afortunadamente existen bastantes aplicaciones de gestión
bibliográfica, como Zotero, Mendely, EndNote o RefWorks o BibSonomy que incluyen la
posibilidad de exportar la bibliografía en ese formato.
Obsérvese que cada entrada bibliográfica empieza por el tipo de documento (book, article,
etc.) y está descrita por varios campos: title (título), author (autor), journal (revista),
year (año), etc. El primer campo es una clave que identifica al documento de manera
única y que se utilizará posteriormente para citarlo.
Una vez creada la base de datos, para citar cualquier referencia contenida en ella, hay que
cargar en el preámbulo el paquete biblatex e indicar la ubicación de la base de datos
con el comando addbibresource{bibliografia.bib}, donde bibliografia.bib es el
nombre del fichero con la base de datos bibliográfica (incluida la ruta), y luego escribir el
comando \cite{clave}, donde clave es la clave de la entrada bibliográfica en la base
de datos, en el lugar donde se quiera hacer la referencia.
Finalmente para listar las referencias bibliográficas citadas en el documento basta con
insertar el comando \printbibliography.
Existen diferentes estilos para las citaciones y para el listado con las referencias bibliográficas que se pueden indicar en la carga del paquete biblatex con el parámetro opcional
style. Por ejemplo si en lugar de números en las citaciones queremos que aparezca
las iniciales del autor y el año, hay que seleccionar el estilo style=alphabetic. En el
siguiente enlace existe un listado exahustivo de los diferentes estilos de citación.
Por último si en lugar de bibtex se quiere usar biber para gestionar las referencias
bibliográficas, hay que indicarlo también ebn la carga del paquete biblatex mediante el
parámetro opcional backend=biber.
Diseño de página
Existen distintos parámetros que determinan el aspecto final de una página con texto.
En este capítulo veremos como modificar las dimensiones de la página, los márgenes, y
cómo introducir encabezados y pies.
Dimensiones y márgenes
Aunque es posible definir el tamaño de la página como un argumento del comando que
define la clase del documento \documentclass, si queremos tener mayor control sobre
las dimensiones del documento, así como de los márgenes, conviene utilizar el paquete
geometry.
El paquete geometry permite definir las dimensiones de la página mediante un argumento
opcional con distintos tamaños de página predefinidos (a4paper, a5paper, b1paper,
letterpaper, etc.), pero también es posible definir nuestras propias dimensiones con los
siguientes argumentos:
• paperheight=x establece la longitud vertical de la página en x (es necesario indicar
las unidades pt,mm o cm).
• paperwidth=x establece la longitud horizontal de la página en x.
Por defecto la orientación del documento es vertical, pero puede ponerse en formato
horizontal o apaisado con el argumento landscape.
También permite definir los márgenes del documento mediante los siguientes argumentos:
• margin=x establece los cuatro márgenes (izquierdo, derecho, superior e inferior)
con tamaño x (es necesario indicar las unidades pt,mm o cm).
• left=x establece el margen izquierdo con tamaño x.
• right=x establece el margen derecho con tamaño x.
• top=x establece el margen superior con tamaño x.
• bottom=x establece el margen inferior con tamaño x.
Encabezados y pies de página
LATEX incluye encabezados y pies de página automáticos dependiendo del tipo de documento. Para las clases article y report no hay encabezado y el pie es el número de
página, mientras que para la clase book el encabezado incluye la página y la sección a la
que corresponde la página. No obstante, el usuario puede definir sus propios encabezados
y pies mediante el paquete fancyhdr.
Una vez cargado este paquete y antes de definir el texto del encabezado y del pie, hay
que cambiar el estilo de página (plain por defecto) a fancy, y para ello se utiliza el
comando \pagestyle{fancy} que indica al compilador que se van a usar un encabezado
y pie personalizados.
A continuación hay que definir el texto del encabezado y del pie. El paquete fancyhdr divide
tanto el encabezado como el pie de página en tres áreas (izquierda, centro y derecha) e
incorpora comandos para escribir en cada una de ellas. El texto del área de la izquierda
siempre se justifica a la izquierda, el del área del centro se justifica centrado y el del
área derecha justificado a la derecha. Por otro lado, para documentos a doble cara, se
distingue también entre encabezados y pies de páginas pares e impares.
Para definir el encabezado y el pie de página se utilizan los comandos
-\fancyhead[opcion]{texo} añade el texto al encabezado de página en el area que se
indique en el argumento opcional opcion, que puede ser L (área de la izquierda), C (área
del centro) o R (área de la derecha), aunque para documentos a doble cara también se
puede especificar el encabezado para páginas pares añadiendo una E o impares añadiendo
una O.
-\fancyfoot[opcion]{texo} añade el texto al pie en el area que se indique en el
argumento opcional opcion.
Por defecto fancyhdr introduce una línea horizontal para
separar el encabezado. Es posible modificar el grosor de la línea redefiniendo los comandos
\headrulewith y \footrulewith. Por ejemplo, si no queremos que aparezca la línea se
escribiría \renewcommand{\headrulewidth}{0pt}.
Finalmente, el espacio entre el encabezado y el cuerpo del texto también se controla con
el paquete geometry con la opción headsep=x. Del mismo modo, la separación entre el
pie y el cuerpo se controla con la opción footskip=x.
Comentarios
Publicar un comentario