Escribir en LaTeX
Apuntes del taller
Esta obra se encuentra bajo la licencia CC-by-SA 4.0.
Descargar: https://montun.fi.uncoma.edu.ar/talleres
Formatos disponibles: PDF - HTML - Epub
- Código fuente: https://gitlab.com/uncoma/talleres-montun
Última actualización: domingo 21 de septiembre del 2025, a las 16:36:11.
Índice
1. Qué es
- Es un lenguaje basado en macros.
- Algunos perciben que la idea es similar a HTML.
- Es Software Libre.
Sitio Oficial:
- En cualquier distribución de GNU/Linux se instala con un paquete bajo el nombre «texlive».
¿Quién hizo ?
Figura 1: Donald Knuth.
Figura 2: Leslie Lamport.
1.1. Tips
- ⚠️ Cuidado con los espacios.
- Nos corta las palabras al final de la hoja con guiones (como hacemos cuando escribimos a mano).
- Excelentes fórmulas matemáticas

- Hace muchas tareas automatizadas: tabla de contenidos, lista de figuras, referencias, tamaño de la letra, etc.
- Se puede usar comandos propios (algo parecido a variables).
2. ¿Por qué ?
- Se puede personalizar.
- Crear documentación pensando en qué querés escribir y no cómo se escribe.
- Nos enfocamos en el contenido → nos ahorra tiempo. 🎉
- Cuando nos enfocamos en el cómo, podemos hacer templates → ¡nos ahorra tiempo! 🎉🎉
- Se puede programar.
- Con y podemos usar condicionales… aunque puede ser difícil de aprender.
- También, con Lua podemos usar el lenguaje Lua directamente.
Podemos usar un lenguaje que nos guste que genere código .
- Más adelante muestro un ejemplo.
Aunque también existen otras bibliotecas para generar PDF directamente, genera un documento con muchas características.
Contras:
- Es compilado… debemos ejecutar un programa que genere de código fuente el PDF.
- Aunque podemos ignorar muchos de los errores y warnings.
- A veces no es tan contra, porque automatiza muchas cosas.
3. Entornos
IDE y entornos para escribir :
-
Es un sitio Web para desarrollo colaborativo.
- Texmaker (Figura 3).
- Lyx
- TeXstudio
Figura 3: Captura de pantalla de TeXmaker
4. Documentación
Se puede encontrar más información en los siguientes sitios:
En terminal:
info latex2e- https://www.latex-project.org/help/documentation/
WikiBook Manual de LaTeX:
Documentación de Overleaf:
5. Cómo funciona
5.1. Proceso habitual
El proceso para generar un PDF desde un archivo se muestra en la Figura 4. Se describe en los siguientes pasos:
- Escribir el archivo fuente (p. ej.: informe.tex).
- Compilarlo (p. ej.: usando
latexmk -pdf informe.texo usando la IDE). - Se obtiene la salida (p. ej.: informe.pdf).
Figura 4: Pasos para generar el PDF.
5.2. Compiladores
Existen 3 compiladores principales:
- PDF:
- El tradicional. No tiene soporte Unicode (UTF-8), y requiere incluir paquetes para brindárselo.
- Xe:
- Con soporte Unicode y fuentes avanzadas (OTF, TTF, etc.).
- Lua:
- El más avanzado. Mismo soporte que xelatex pero se puede embeber código en lenguaje Lua. Se pueden escribir artículos en otros idiomas con diferente dirección de escritura (japonés, chino, coreano, árabe, etc.).
Para generar un documento PDF, cada compilador requiere de varias pasadas (ejecutar varias veces el compilador) y, en ocasiones, de otras herramientas. Para automatizar este proceso, se utiliza el programa latexmk. Éste detecta si es necesario ejecutar el compilador una o dos veces y si es preciso utilizar otro programa. Si se escribe LaTeX en una IDE o en Overleaf, es probable que la compilación utilice este comando. Localmente, en una terminal, se ejecuta de la siguiente manera:
- para usar PDF:
latexmk -pdf ARCHIVO.TEX - para usar Lua:
latexmk -lualatex ARCHIVO.TEX - para usar Xe:
latexmk -xelatex ARCHIVO.TEX
6. Comandos y ambientes
Sintaxis de los comandos:
\comando[arg opcional][opcional2]{obligatorio1}{obligatorio2}Ojo con los espacios:
\textbf{hello}no es lo mismo que\textbf {hello}.- Sintaxis de ambientes:
\begin{ambiente}[opcionales] Más texto LaTeX. \end{ambiente}
7. Formato básico de un documento
El formato básico es:
\documentclass{CLASE} PREAMBULO (paquetes, definiciones de comandos, configuraciones, etc.) \begin{document} CUERPO (contenido del documento) \end{document} COMENTARIOS (esta región no se procesa)
7.1. clases de documentos
Todo documento empieza con describir su clase:
\documentclass[OPCIONES]{CLASE}
7.1.1. article
\documentclass{article} %% Preámbulo \begin{document} %% Cuerpo del documento \section{Sección 1} \subsection{Sección 2} \end{document}
- No se puede separar en capítulos.
- Para informes o artículos chicos.
La Figura 5 muestra cómo resulta el código anterior.
Figura 5: Ejemplo de un article.
7.1.2. report
\documentclass{report} %% Preámbulo \begin{document} %% Cuerpo del documento \chapter{Capítulo 1} \section{Sección 1} \subsection{Sección 2} \end{document}
La Figura 6 muestra cómo resulta el código anterior.
Figura 6: Ejemplo de un report.
7.1.3. book
\documentclass{book} %% Preámbulo \begin{document} %% Cuerpo del documento \chapter{Capítulo 1} \section{Sección 1} \subsection{Sección 2} \end{document}
La Figura 7 muestra cómo resulta el código anterior.
Figura 7: Ejemplo de un book.
7.2. Lo ideal es agregar paquetes
En el preámbulo se pueden agregar paquetes que nos incluyen comandos nuevos. Se recomiendan:
- amsmath:
- símbolos matemáticos.
- graphics:
- permite agregar imágenes con
\includegraphics{PATH} - polyglossia:
- configura al idioma español con
\setmainlanguage{spanish}.Si se utiliza PDFLaTeX, mejor usar babel así:
\usepackage[spanish]{babel}
- geometry:
- configura tamaño de márgenes.
Se escriben así:
\usepackage{amsmath} \usepackage{graphicx} \usepackage{hyperref} % Si se usa LuaLaTeX o XeLaTeX: \usepackage{polyglossia} \setmainlanguage{spanish} % Si se usa PDFLaTeX: % \usepackage[spanish]{babel} \usepackage[margin=2cm]{geometry}
8. Cuidado con los espacios
¡ es muy sensible a los espacios!
Varios espacios entre palabras no afectan. se encarga de acomodar el texto adecuadamente.
Varias palabras separadas así.Es lo mismo que:
Varias palabras separadas así.
- Varias líneas en blanco se consideran como una.
Ejemplo:
Párrafos se separan con una o más líneas en blanco. Por eso, este no es un párrafo, porque no tiene una línea en blanco entremedio. Pero este sí es un párrafo nuevo. Y este también.
Resultado:
Párrafos se separan con una o más líneas en blanco. Por eso, este no es un párrafo, porque no tiene una línea en blanco entremedio.
Pero este sí es un párrafo nuevo.
Y este también.
9. Fuentes
9.1. Estilos de fuentes
\textbf{Texto negrita} \textit{itálica} \emph{Texto con énfasis: itálica, pero dentro de otro énfasis es \emph{normal}.} \textsf{Sans Serif} \texttt{Monoespaciado}
Resultado:
9.2. Tamaño de las fuentes
- El comando afecta desde donde aparece hasta el final del ambiente, llave que cierra o el documento.
- Observar que se rodea entre llaves para limitar su efecto.
- No se indica el tamaño de forma explícita.
- lo calcula relativo a un tamaño fijo que aparece en el parámetro opcional de la clase (p. ej. el siguiente declara que el tamaño normal de la fuente es de 12pt:
\documentclass[12pt,a4paper]{article}). - Con cambiar en un solo lugar, se cambia el tamaño de todo el documento.
- lo calcula relativo a un tamaño fijo que aparece en el parámetro opcional de la clase (p. ej. el siguiente declara que el tamaño normal de la fuente es de 12pt:
lorem {\tiny lorem ipsum} ipsum
lorem {\scriptsize lorem ipsum} ipsum
lorem {\footnotesize lorem ipsum} ipsum
lorem {\normalsize lorem ipsum} ipsum
lorem {\small lorem ipsum} ipsum
lorem {\normalsize lorem ipsum} ipsum
lorem {\large lorem ipsum} ipsum
lorem {\Large lorem ipsum} ipsum
lorem {\LARGE lorem ipsum} ipsum
lorem {\huge lorem ipsum} ipsum
lorem {\Huge lorem ipsum} ipsum
El resultado:
10. Organizando el documento
10.1. Título y autor
hace puede hacer una portada simple.
\documentclass{article} % Algunos paquetes para que quede mejor \usepackage{amsmath} \usepackage{graphicx} \usepackage{hyperref} \usepackage{polyglossia} \setmainlanguage{spanish} \usepackage[margin=2cm]{geometry} \author{Christian Gimenez} \date{19 de septiembre del 2025} \title{Mi documento de ejemplo} \begin{document} \maketitle Mucho texto aquí. \end{document}
Un ejemplo se muestra en la Figura 8.
Figura 8: Ejemplo de un título y del comando maketitle.
10.2. Secciones
Los documentos se dividen en secciones, subsecciones, etc. Los libros y reportes técnicos también se dividen en capítulos. En se escribe así:
\chapter{Capítulo 1} % \chapter{} se utiliza solo con book y report. Texto... \section{Sección 1} Texto... \subsection{Sección 1.1} Texto... \subsubsection{Sección 1.1.1} Texto...
10.3. nos ahorra tiempo…
Se puede utilizar \tableofcontents para que nos haga una tabla de contenidos de forma automática.
\documentclass{article} % Algunos paquetes para que quede mejor \usepackage{amsmath} \usepackage{graphicx} \usepackage{hyperref} \usepackage{polyglossia} \setmainlanguage{spanish} \usepackage[margin=2cm]{geometry} \begin{document} \tableofcontents %% Cuerpo del documento % \chapter{Capítulo 1} % chapter solo funciona en report o book. \section{Sección primera} texto de la sección primera... \subsection{Subsección primera} Más texto... \section{Sección segunda} Mucho más texto... \subsection{Subsección segunda} Pueden haber más cosas... \subsubsection{Subsubsección segunda} Más... mucho más texto. \end{document}
Compilado, el PDF generado se muestra en la Figura 9.
Figura 9: Ejemplo de secciones y de una tabla de contenidos.
11. Ejemplo: programar un documento
En el ejemplo siguiente, se muetra un código Ruby que genera código . En vez de puts se podría utilizar un objeto File para guardar la salida en un archivo.
# Podríamos leer el nombre desde terminal también, con #gets nombre='Christian' saludo='Este es un saludo desde Ruby' def encabezado(nombre) puts <<~STR_DOC \\documentclass{article} %% Paquetes \\author{#{nombre}} \\begin{document} STR_DOC end def documento(saludo) puts '\Huge' puts 'Escribiremos un saludo configurado desde Ruby:' puts puts "\\emph{#{saludo}}" puts puts 'El saludo se hizo el día:' fecha=Time.now puts fecha.ctime puts puts "Y 25 * 31 + 2 es: #{25 * 31 + 2}" puts puts "Y con terminal:" puts `date` # date se ejecuta en terminal y Ruby muestra el resultado end def fin puts '\end{document}' end encabezado nombre documento saludo fin
Si ejecutan el código, generará lo siguiente:
Resulta en la Figura 10.
Figura 10: Usando Ruby para generar LaTeX.
12. Licencia de esta obra
Excepto en los lugares que se ha indicado lo contrario:
Escribir en LaTeX por Christian Gimenez se distribuye bajo una Licencia Creative Commons Atribución-CompartirIgual 4.0 Internacional (CC-by-SA 4.0).
Para ver una copia de esta licencia, visite la página Web:
https://creativecommons.org/licenses/by-sa/4.0/deed.es
A continuación se citará el resumen que se encuentra en dicha página Web:
Con CC-by-SA 4.0 usted puede:
- Compartir:
- Copiar y redistribuir el material en cualquier medio o formato para cualquier propósito, incluso comercialmente.
- Adaptar:
- Remezclar, transformar y construir a partir del material para cualquier propósito, incluso comercialmente.
Creative Commons (cc)
Atribución (by)
Usted debe dar crédito de manera adecuada, brindar un enlace a la licencia, e indicar si se han realizado cambios. Puede hacerlo en cualquier forma razonable, pero no de forma tal que sugiera que usted o su uso tienen el apoyo de la licenciante.
CompartirIgual (SA)
Si remezcla, transforma o crea a partir del material, debe distribuir su contribución bajo la misma licencia del original.
12.1. Licencia de las imágenes
Foto obtenida desde Wikimedia. Bajo licencia Creative Commons Attribution-Share Alike 2.0 Generic. Ver en Wikimedia.
Foto obtenida desde Wikimedia. El autor autoriza la utilización de la foto para cualquier propósito. Ver en Wikimedia.