2025-03-18
Una introducción a LATEX
Recientemente he descubierto como se hacen los trabajos de fin de carrera, lo que me define como mal informático, así que aquí presento a LaTeX.
Haz click en el título de la sección para expandirla.
La estructura de un documento LATEX
Comandos LATEX
En LaTeX los comandos suelen ir precedidos de una barra invertida "\". Algunos comandos tienen diferentes opciones que se pueden especificar al escribirlos (se denominan argumentos).
Los argumentos opcionales (cosas que puedes elegir decirle al comando) generalmente van entre corchetes [ y ], mientras que los obligatorios (cosas que debes decirle al comando) van dentro de llaves { y }.
Estructura del documento LATEX
Todo document en LATEX comienza definiendo el tipo de documento y esta sección de denomina preámbulo. Esto se logra con el comando \documentclass, por ejemplo:
\documentclass[a4paper,11pt]{book}
Las clases estándar son article, report, book, letter y slides, aunque se pueden definir las tuyas propias. La mayoría de las revistas tienen su propio archivo de clase (los archivos de clase tienen la extensión .cls). Nos centraremos en las tres clases más útiles para la escritura científica: article, report y book.
El comando \documentclass también tiene una serie de argumentos opcionales, incluidos:
- a4paper, selecciona el tamaño de papel A4. El valor predeterminado es letter, que probablemente no sea el deseado. Otras alternativas útiles son a5paper y b5paper.
- 11pt, selecciona el tamaño de la fuente en 11 puntos. Las alternativas suelen ser 10pt y 12pt, aunque la clase slides es un poco diferente.
- landscape/portrait, selecciona la orientación del papel horizontal/vertical.
- twocolumn, imprime el texto en dos columnas (el valor predeterminado es una sola columna -onecolumn-).
Se pueden separar varias opciones con comas, pero no se puede dejar espacios.
Tras el preámbulo, se encuentra el cuerpo principal del documento, rodeado por los comandos \begin{document} ... \end{document}. Aquí se encuentra la mayor parte de la información: se describen todo el texto, ecuaciones, imágenes, tablas y listas.
Entornos.
Los comandos \begin{document} y \end{document} son un ejemplo de entorno. Se accede a ellos con un \begin{} y se sale de ellos mediante un \end{}. Definen características específicas de composición tipográfica para poder organizar las diferentes partes del documentos de distintas maneras, según su contenido y propósito.Comentarios en LATEX.
Como con todo código informático, es importante asegurarse de que LATEX esté bien comentado. Si bien los documentos sencillo pueden ser auto explicativos, los documentos LATEX tienden a crecer de forma orgánica en lugar de mantenerse bien estructurados, lo que puede generar código fuente confuso. Además, se puede olvidad qué son y para que sirven ciertas definiciones o comandos LATEX, o por qué los usó en lugar de otros.
En LATEX, cualquier cosa después de un signo de porcentaje "%" se trata como un comentario y no aparecerá en el documento.
Un documento básico
% First we choose the document class (can be book, report, article etc.)
\documentclass[11pt]{report}
% Now we start the main document stuff
\begin{document}
% I don't know what to write! Let's just say:
This is my first LATEX document.
% Now we need to end the document
\end{document}
Compilando LATEX
LATEX más que un editor de texto es una especie de lenguaje informático a base comandos. Cuando le damos a "compilar" se ejecuta una serie de comandos la cual podemos ver correr, si hay algún error nos informará de ello. Ante errores graves se detiene la ejecución.
La salida de LATEX es un archivo PDF, sin embargo, también puede generar archivos adicionales (según se especifica al programa). Generalmente creará un archivo .log y otro .aux.
El archivo .log contiene toda la información que mostró en pantalla. Útil para encontrar errores y advertencias.
El archivo .aux contiene información para otros programas, poco útil de momento.
Texto en LATEX
Líneas y párrafos.
Quizás hayas notado que, en general, LATEX ignora los espacios en blanco. Un párrafo en LATEX se define dejando una línea en blanco. Si solo quieres dejar una línea en blanco para que el texto sea más legible en el código fuente, solo necesitas añadir un carácter de comentario (%) al principio.
A veces, es posible que quieras terminar una línea antes o tener una línea en blanco para separar el contenido. Puedes hacerlo con "\\". Esto le indica a LATEX que divida la línea, pero no inicia un nuevo párrafo.
De forma predeterminada los documentos de LATEX sangrarán la primera línea del párrafo. La cantidad de espacio que sangra se puede controlar mediante el comando \parindent, por ejemplo:
\parindent 10mm
Es posible que también desees dejar un poco de espacio vertical entre párrafos, y para hacer esto usa parskip, por ejemplo:
\parskip 1.2in.
Observa algo inusual: los argumentos de estos comandos no van dentro de llaves.
Ambos comandos pueden usarse antes del \begin{document} o en medio del texto. Si lo coloca en medio del texto solo se aplicará a partir de ese momento. Por supuesto, se puede cambiar después también.
Longitudes.
Los comandos \parindent y \parskip necesitan una longitud como argumento. Se pueden especificar longitudes en puntos (pt), milímetros (mm), centímetros (cm) o pulgadas (in).
Capítulos y secciones
La mayoría de los documentos son tan extensos que podría se conveniente dividirlos en diferentes secciones. En el caso de documento grandes (book y report, la división principal del documento son capítulos, que a su vez se pueden dividir en secciones y, si es necesario, subsecciones. El article está diseñado para documentos más cortos y sus divisiones principales son las secciones y no comprende capítulos.
Para iniciar un nuevo capítulo se utiliza el comando \chapter{}, donde el título del capítulo va entre las llaves, por ejemplo:
\chapter{Introducción}
La lista completa de comandos relacionados con la sección es:
- \part{titulo}, define el inicio de una parte importante de un libro. Suelen estar numerados (empezando por el 1). No son muy útiles para la mayoría de las tareas que queremos realizar con LATEX y solo se definen para las clases book y report.
- \chapter{titulo}, define el inicio d en nuevo capítulo, suelen estar numerados (empezando por el 1). Esta disponible solo para libros y reportes (los artículos tratan las secciones como si solo hubiera un nivel).
- \section{titulo}, inicia una nueva sección, y suelen numerarse dentro del capítulo, por ejemplo, la sección 2.3 será la sección 3 del capítulo 2.
- \subsection{titulo} , define una subsección dentro de una sección. Ejemplo: 2.3.1.
- \subsubsection{titulo} , una subsección dentro de una subsección y generalmente no se numera.
Se puede incluso definir secciones más pequeñas usando \paragraph y subparagraph, pero raras veces se utilizan.
De forma predeterminada, LATEX numerará las partes, capítulos, secciones y subsecciones del documento, si no queremos que estén numeradas, coloque un asterisco al final del nombre del comando:
\chapter*{titulo}
Formato
Alineación
Como ocurre con todo texto, a veces es necesario cambiar su alineación. Por defecto, LATEX justifica todo el texto para que se alinee en los márgenes izquierdo y derecho.
Cualquier texto intermedio \begin{flushleft}...\end{flushleft} se alineará con el margen izquierdo, pero tendrá un borde derecho irregular. Este es otro ejemplo de un entorno LATEX. Si ya está en un entorno, puede activar este estilo de alineación de otra manera usando \raggedright.
El entorno \begin{flushright}...\end{flushright} hace lo contrario que flushleft, y el texto se alineará con el margen derecho y tendrá un borde izquierdo irregular. Si ya está en un entorno, puede activar este estilo de alineación de otra manera usando \raggedleft.
El entorno \begin{center}...\end{center} se usa para centrar el texto. Cada línea se centra individualmente. Esto suele hacer que el párrafo se vea feo y difícil de leer, pero es útil para centrar figuras, tablas, etc. Dentro de otro entorno, puede usar \centering. A veces, el comando \centerline{} puede ser útil; este comando centra todo en su argumento.
Referencias cruzadas
Una de las características más útiles de LATEX es su capacidad para gestionar referencias cruzadas. Para usar esto, primero definimos una etiqueta en la sección (o ecuación, tabla, etc.) a la que queremos hacer referencia, usando el comando \label{}, por ejemplo:
\section{Labels and References}\label{ref_section}
El argumento del comando \label es simplemente una cadena de texto que usará para referenciar esa parte. Añadimos una referencia a ella mediante el comando \ref{}, que simplemente toma esa misma cadena de texto como argumento, por ejemplo:
We can define labels in LATEX, as we see in section \ref{ref_section}, and use these for cross-referencing.
Puedes poner referencias a secciones antes o después del comando de etiqueta, por lo que es muy posible tener texto como "como verás en el capítulo \ref{mi_capítulo}" que hace referencia a una parte a la que aún no as llegado.
Puedes hacer referencia a la página en la que aparece un objeto usando \pageref{}, por ejemplo:
We can define page references easily in LATEX, see the reference on page \pageref{ref_section}.
Al ejecutar LATEX en un documento con referencias cruzadas, a menudo no se sabe a qué sección se refieren. Verá un mensaje de LATEX como:
LATEX Warning: There were undefined references. LATEX Warning: Label(s) may have changed. Rerun to get cross-references right.
La primera vez que ejecuta LATEX, este toma nota de todas las etiquetas y todas las referencias y coloca esta información en el archivo .aux; luego debe ejecutar LATEX nuevamente, sin cambiar el archivo .tex fuente, para que LATEX obtenga la información del archivo .aux y ordene qué referencias son cuáles.
Si sigues recibiendo el mensaje de error LATEX Warning: There were undefined references, significa que LATEX no encuentra una etiqueta que coincida con uno de tus comandos de referencia. Esto suele deberse a que la has escrito mal.
Si introduces la misma cadena de texto en dos etiquetas diferentes, LATEX no sabrá a cuál te refieres al hacer referencia. Para evitarlo, si LATEX encuentra dos cadenas de etiquetas idénticas, emitirá un mensaje de error.
LATEX Warning: There were multiply-defined labels.
Si buscas más arriba en la salida (o en el archivo .log), verás algo como esto:
LATEX Warning: Label `important_equation' multiply defined.
Ecuaciones
Entornos matemáticos
En LATEX, es sencillo incluir ecuaciones matemáticas y notación en el documento. A menudo, querrá hacerlo usando uno de los entornos matemáticos, como el entorno equation, por ejemplo, usará \begin{equation}... \end{equation}. Todo dentro de este entorno usa un "modo matemático", que define una gran cantidad de comandos y símbolos útiles.
Cada entorno equation contiene una sola ecuación, que suele estar numerada. Puedes usarla \label{} para referenciarla en tu texto como cualquier otro objeto. Si no quieres que tu ecuación esté numerada, existe un entorno equivalente no numerado llamado displaymath.
Si desea escribir varias ecuaciones juntas, puede usar el entorno eqnarray. Al final de cada ecuación, comience una nueva línea usando \\ como de costumbre. El entorno eqnarray le permite alinear las ecuaciones para que, por ejemplo, todos los signos de igual "=" se alineen. Para ello, coloque el símbolo "&" alrededor del texto que desea que LATEX alinee, por ejemplo:
\begin{eqnarray}
F &=& ma\\
V &=& IR
\end{eqnarray}
Cada ecuación se puede etiquetar por separado; basta con colocar el comando de etiqueta después de la ecuación correspondiente. También puede suprimir la numeración de cualquier ecuación añadiendo el comando \nonumber después de la ecuación; si no desea que ninguna ecuación esté numerada, utilice el entorno eqnarray*
.Comandos y símbolos matemáticos
Casi todos los símbolos y operaciones imaginables están definidos en LATEX, y aquí solo tenemos tiempo para repasar algunos. Algunos de los más útiles para los científicos son:
- _{} el texto entre corchetes es un subíndice, por ejemplo x_{i+1}=x_i + v_i t; si el subíndice es solo un carácter, puede omitir las llaves.
- ^{} el texto entre corchetes es un superíndice, por ejemplo E=mc^{2}; si el superíndice es solo un carácter, puede omitir las llaves, por ejemplo E=mc^2.
- \lambda Compone la letra griega lambda. Úsela \Lambda para la forma mayúscula. Todo el alfabeto griego se define de forma similar.
- \hat{}coloca un "sombrero" (^) encima del texto, por ejemplo, podría usarse \hat{H}para un operador hamiltoniano..
- \frac{}{}Se utiliza para componer una fracción. El numerador es el primer argumento y el denominador, el segundo.
- \sum_{i=1}^{N} Compone una suma; los límites se pueden especificar como subíndices y superíndices, como en este ejemplo. También existe \prod para productos.
- \intEl signo integral; también \oint para integrales de bucle. Los límites se especifican como subíndices y superíndices, al igual que para las sumas.
- \circ hace un círculo pequeño, que podemos usar para grados (utilizando como indice.
- \times hace un signo de multiplicación.
- \pm más o menos ( \mp para menos o más)
- \surd el signo de "raíz cuadrada"
- \equivel signo "equivalente"
- \approxel signo "aproximadamente igual"
- \simla línea ondulada "del orden de"
- \neqel signo "no es igual a"
- \nablael símbolo del operador diferencial vectorial "del"
- \partialla derivada parcial "d rizada"
- \forall¡El símbolo de "para todos"!
- \exists¡El símbolo de "existe"!
- \inftyinfinidad
- \imathcarácter especial para el número imaginario i (alternativamente \jmathsi usa j para este número)
- \hbarh-bar, es decir, la constante de Planck sobre 2.pi
- \ldots da una elipsis "..." ( \cdotsque también pone los puntos en el medio de la línea, \vdots que tiene tres puntos verticales y \ddots que pone tres puntos en diagonal de arriba a la izquierda a abajo a la derecha)
- \cdothace un solo punto
- \Longrightarrowla flecha "implica"
- \sinla función seno (también \cos, \tan, \arcsin, etc. así como \ln, \log, \expy las funciones hiperbólicas).
- \sqrt{x}Se utiliza para el símbolo de "raíz cuadrada". El argumento obligatorio es lo que se va a "raíz"; también hay un argumento opcional (entre corchetes antes de los corchetes) que define la "potencia" de la raíz. Por ejemplo, la raíz cúbica de dos sería \sqrt[3]{2}
- \vertda una pequeña línea vertical.
- x \atop y pone "x" encima de "y"
Soportes, izquierdo y derecho
Existen varios tipos de corchetes en LATEX, desde los comunes "(" y ")" hasta los corchetes "{" y "}" y los corchetes "[" y "]". Lamentablemente, LATEX usa corchetes y corchetes para especificar argumentos, así que si quieres que aparezcan en tu ecuación, necesitas "escaparlos", como se dice, colocando una barra invertida delante, por ejemplo \{. Este método funciona con cualquier símbolo especial que LATEX normalmente trataría como un comando, por ejemplo, "%" o "$".
Al escribir ecuaciones, es común encontrar que los tamaños predeterminados de los corchetes de LATEX son demasiado pequeños y se ven un poco ridículos. Para indicarle a LATEX que los corchetes tengan el tamaño de una parte específica de la ecuación, se usan los comandos \left( y`\right). El corchete redondo puede reemplazarse por cualquier otro corchete o por un punto, que no imprime nada, pero define el inicio de la región. Compara esto:
( \sum_{i=1}^N x_i p_i )
con
\left( \sum_{i=1}^N x_i p_i \right)
y verás lo que hacen \left( y \right).
Matrices
Escribir matrices es un poco complicado al principio, ¡por eso le he dedicado una sección! Necesitas usar el entorno array dentro del de matemáticas. Es más fácil verlo con un ejemplo:
\left(
\begin{array}{ccc}
1 & 2 & 3\\
4 & 5 & 9\\
1 & -8 & 2
\end{array}
\right)
El argumento del array environment, ccc, significa que hay tres columnas centradas (no es necesario especificar el número ni las filas). Puede usar r o l en su lugar para alinear cualquier columna a la derecha o a la izquierda, respectivamente.
Dentro del entorno array las columnas están separadas por "&", tal como lo usamos en el entorno eqnarray, y las nuevas filas se crean simplemente usando el comando de nueva línea \\.
El entorno array puede tomar un argumento opcional para especificar que las filas deben estar alineadas en la parte superior, por ejemplo "\begin{array}{ccc}[t]", o usar "[b]" para garantizar que las filas estén alineadas en la parte inferior.
Títulos y contenidos
Páginas de título.
Puedes definir un título para tu documento usando \title{} y luego crear el título usando \maketitle. También puedes agregar otra información como el autor o autores y la fecha, por ejemplo:
\documentclass[12pt,draft]{book}
\title{A Beginner's Guide to \LATEX}
\author{Phil Hasnip}
\date{\today}
\begin{document}
\maketitle
Ten en cuenta el uso de \today para insertar automáticamente la fecha de creación del documento. ¡Claro que puedes escribir solo la fecha si lo prefieres!
Contenido
Para agregar una tabla de contenido, simplemente agregue \tableofcontents a su documento, por ejemplo:
\begin{document}
\tableofcontents
\chapter{Introduction}
\end{document}
También puedes usar \listoffigures para mostrar todas las figuras en tu documento (ver más adelante).
Numeración de páginas.
Hasta ahora hemos usado la numeración de páginas predeterminada de LATEX. En la mayoría de los casos, esto funciona bien, pero para las primeras páginas, como el índice y la portada, quizás prefieras algo diferente.
- \pagestyle{empty} evita que se numeren las páginas
- \pagestyle{plain} Este es el valor predeterminado; coloca los números en la parte inferior de la página.
- \pagestyle{headings} coloca los números en la parte superior de la página; el estilo y el contenido precisos dependen de la clase de documento.
- \pagenumbering{roman}páginas de números que utilizan números romanos; use arabic para volver a cambiarlo.
Paquetes
Los paquetes se utilizan para ampliar la funcionalidad de LATEX y definir (o redefinir) formas de composición tipográfica. A veces se denominan archivos de estilo y reciben la extensión .STY. Para incluir un paquete en su documento LATEX, utilice el comando \usepackage antes de iniciar el entorno del documento, por ejemplo:
\documentclass[12pt,draft]{book}
% Use the graphicx package for graphics
\usepackage{graphicx}
\begin{document}
Hay muchos paquetes disponibles, incluidos:
- graphicx para imágenes y gráficos.
- makeidx para crear índices y glosarios
- multicols Permite abarcar múltiples columnas en tablas.
- citesort Mejora la forma en que se componen las citas múltiples.
- rotating Permite, entre otras cosas, colocar tablas grandes de lado en la página.
- pstricks para diagramas
- fancyhdr define \pagestyle{fancy} para encabezados de página bonitos.
- color (tenga en cuenta la ortografía de EE. UU.) le permite utilizar texto en color.
- palatino Incluye la familia de fuentes Palatino.
Proyector
El paquete beamer no está diseñado para documentos escritos, sino para presentaciones que acompañan a las charlas. Modifica muchas de las reglas de composición tipográfica de LATEX, modifica el estilo drásticamente y añade numerosos comandos nuevos. Es muy flexible y potente, pero requiere algo de tiempo para aprender a usarlo.
Gráficos y figuras
El entorno figure.
Siempre que desee incluir gráficos o imágenes, es recomendable colocarlos en un entorno figure. LATEX sabe que los mejores lugares para colocar figuras son al principio o al final de la página, o quizás en una página aparte. También define el comando \caption{} que permite agregar un título a la figura. La sintaxis básica es :
\begin{figure}[h]
% Put your figure here
% ...
\caption{I'm sure you'll agree I have a good figure}
\end{figure}
El argumento opcional del entorno figure indica a LATEX dónde desea que aparezca, si es posible; las opciones h significan "aquí". Puede ser "t" (para la parte superior de la página), "b" (para la parte inferior de la página) y "p" (en una página sin texto). Esto es solo una sugerencia para LATEX, y podría ignorarla si considera que su instrucción no se puede ejecutar correctamente. Si desea que LATEX considere su sugerencia en serio, puede colocar un signo de exclamación antes de la ubicación, por ejemplo:
\begin{figure}[!b].
Si desea hacer referencia a una figura en el texto, debe agregar una etiqueta \label como de costumbre. La etiqueta debe colocarse dentro del entorno de la figura, después del pie de foto.
Paquetes de gráficos
A todos nos gusta ver imágenes en cualquier documento. Ya sea una foto del autor, representaciones de investigaciones o gráficos, pueden transmitir mucha información en poco espacio. Para incluir gráficos en una presentación LATEX, es necesario indicarle a LATEX cómo gestionarlos. La forma más sencilla de hacerlo es usar un paquete de gráficos , el más común es graphicx.
Una vez que haya incluido el paquete graphicx en su documento, puede incluir cualquier gráfico usando:
\includegraphics{}
Por ejemplo:
\begin{figure}
\centerline{\includegraphics{dangermouse.jpg}}
\caption{Wherever there is danger he'll be there}
\label{DM}
\end{figure}
Donde he usado \centerline para asegurarme de que aparezca en el centro.
Puede tener varios gráficos dentro de un entorno figure y un solo título para cada uno, por ejemplo:
\begin{figure}
\centerline{\includegraphics{the_baron.jpg}}
\centerline{\includegraphics{nero.jpg}}
\centerline{\includegraphics{stiletto.jpg}}
\caption{Baron Silas Greenback, our hero's arch-nemesis, and his minions}
\label{DM}
\end{figure}
Formatos de imagen
Una de las desventajas de usar imágenes en LATEX es la forma en la que se aceptan los distintos tipos de imagenes. Si creas un PDF, como hacemos hoy día, puedes usar JPG y PNG (¡o incluso PDF!). Si creas un PostScript (PS), el mejor formato de imagen es PostScript Encapsulado (EPS). La mayoría de las revistas prefieren las figuras EPS porque es más fácil imprimirlas en alta calidad.
Nota importante: Modo draft
Si has activado la opción draft en tu \documentclass, LATEX no mostrará las imágenes. Dejará el espacio correcto para la imagen, pero solo mostrará un recuadro negro vacío con el nombre del archivo. Si quieres que las imágenes aparezcan en el resultado final, debes desactivar la opción de borrador.
Listas
Hay tres tipos básicos de listas en LATEX, cada uno con su propio entorno.
Listas ordenadas
Estas listas se crean mediante el entorno enumerate. Dentro de este entorno de lista ordenada, cada elemento de la lista se especifica con \item. Cada elemento de una lista ordenada está numerado, por ejemplo:
\begin{enumerate}
\item Find plans.
\item Save world.
\item Get out of my house!
\end{enumerate}
Listas desordenadas
Estas listas se crean utilizando el entorno itemize, pero aparte de utilizar el mismo símbolo para cada elemento, es prácticamente lo mismo que el entorno enumerate.
Listas de descripciones
Estas listas se crean mediante el entorno description. Se usa el comando \itemcomando como antes para especificar cada elemento, pero ahora puede aceptar un argumento opcional que indica lo que se describe, por ejemplo:
\begin{description}
\item[Microphone] A millionth of a telephone
\item[Megaphone] 10$^{12}$ microphones
\end{description}
Tablas
Una tabla es una matriz rectangular de celdas, organizada en filas y columnas, y el entorno LATEX correspondiente es tabular. Recomiendo anidarla dentro de un entorno table, lo que garantizará que las tablas se muestren en la parte superior (o inferior) de la página, al igual que el entorni figure para los gráficos, y \caption también lo habilitará; sin embargo, esto no es estrictamente necesario.
Tablas básicas
El entorno tabular utiliza una sintaxis muy similar al entorno array que usamos para matrices, así que no hay mucho más que añadir. Además del habitual "l" y "r" puede que resulte útil la alineación "p", que toma un argumento de ancho obligatorio, por ejemplo p{0.8\textwidth}, y presenta el contenido de la columna como si fuera un párrafo de texto; en otras palabras, divide las líneas automáticamente y justifica el texto correctamente.
\begin{table}[t] % put at top of page if possible
\begin{tabular}{l|c|c}
Run & Displacement & Force \\
\hline
1 & 3.5cm & 1.8N \\
2 & 3.0cm & 1.6N \\
3 & 2.5cm & 1.35N
\end{tabular}
\caption{Results of the weighted spring experiment}\label{table:spring}
\end{table}
Las barras verticales en el argumento del entorno tabular le indican a LATEX que separe esas columnas con una línea vertical, y el comando \hline crea una línea horizontal a lo largo de la tabla; si solo desea la línea horizontal a lo largo de ciertas columnas, puede usar el comando \cline y decirle qué columnas desea, por ejemplo:
\begin{table}[t] % put at top of page if possible
\begin{tabular}{l|c|c}
Run & Displacement & Force \\
\hline
1 & 3.5cm & 1.8N \\ \cline{2-3}
& 3.55cm & 1.82N \\ \cline{2-3}
& 3.48cm & 1.79N \\ \cline{2-3}
2 & 3.0cm & 1.6N \\ \cline{3-3}
& & 1.602N \\ \cline{3-3}
3 & 2.5cm & 1.35N
\end{tabular}
\caption{Results of the weighted spring experiment}\label{table:spring}
\end{table}
Abarcando varias columnas
A veces, podría querer que una entrada de una tabla abarque varias columnas. Si usa el paquete multicols, puede hacerlo con el comando \multicolumn. Se necesitan tres argumentos: el primero indica cuántas columnas se deben abarcar; el segundo argumento es la alineación que se usará (la habitual "l", "c", o "r", y posiblemente "|"). El tercero es el contenido de esas columnas.
\begin{table}[t] % put at top of page if possible
\begin{tabular}{l|c|c}
Run & Displacement & Force \\
\hline
1 & 3.5cm & 1.8N \\
2 & 3.0cm & 1.6N \\
3 & 2.5cm & 1.35N\\
4 & \multicolumn{2}{c}{My idiot lab partner dropped the weight}
\end{tabular}
\caption{Results of the weighted spring experiment}\label{table:spring}
\end{table}
Tablas de etiquetado
Si quieres referenciar una tabla, lo mejor es colocar el comando \label inmediatamente después de caption. Si lo colocas en cualquier otro lugar, podrías obtener una numeración peculiar. Además, puedes referenciar tablas como cualquier otra cosa en LATEX.
Otras tablas
Citas y bibliografías
Trabajo de otras personas
En muchos de los documentos que producirás, en algún momento querrás citar otros documentos. En este caso, necesitas el comando \cite{}. También necesitas definir tus citas, por supuesto; hay varias maneras de hacerlo, pero probablemente la mejor sea usar un programa auxiliar llamado bibtex.
Para usarlo bibtex crea un archivo .bib que contiene una entrada por cada obra que se desea citar. BibTeX no es lo mismo que LATEX, y un .bib archivo no es un archivo LATEX y tiene su propia sintaxis. Un .bib consta de una serie de entradas, cada una de las cuales hace referencia a una obra publicada de un tipo u otro. Las entradas se ven así:
@PhdThesis{hasnip,
author = {P. Hasnip},
title = {Ab-initio Simulations of Transition Metal Surfaces},
school = {University of Cambridge},
year = {2001},
OPTkey = {},
OPTtype = {},
OPTaddress = {},
OPTmonth = {},
note = {Chapter 6},
OPTannote = {}
}
La arroba "@" es el inicio de una entrada, y el texto que le sigue define el tipo de trabajo. Las fuentes comunes son PhdThesis, Article (para artículos), InCollection (por ejemplo, para artículos en libros o actas de congresos) y Misc para cualquier cosa que no encaje en las demás (por ejemplo, comunicaciones privadas).
Una vez definida la fuente, todo lo demás se escribe entre llaves, como se muestra en el ejemplo. El primer item es un identificador único que indicará cómo se hará referencia a esta obra en el documento LATEX. Se lo proporcionará comando \cite LATEX, tal como se usa con \label y \ref..
Después del tipo de documento y la cadena única, hay varios datos que pueden ser relevantes o no, y los datos permitidos varían ligeramente según el tipo de trabajo. Si no desea un dato en particular, simplemente introdúzcalo delante, como hice address en el ejemplo anterior.
Una vez que haya terminado su archivo .bib, puede citar cualquiera de esos trabajos en su documento LATEX simplemente usando \cite{}, por ejemplo: \cite{hasnip}.
Necesitará indicarle a LATEX que desea incluir una bibliografía. Para ello, agregue el comando \bibliography{thesis} donde desee que aparezca en el documento LATEX, donde "thesis" aquí está el prefijo de su archivo .bib. Probablemente también quiera asegurarse de que se incluya en cualquier tabla de contenido, lo cual hace con \addcontentsline{toc}{chapter}{\sc Bibliography}. Por ejemplo:
\documentclass[11pt,final]{book}
\title{My Sample \LATEX Document}
\author{Phil Hasnip}
\date{\today}
\begin{document}
\maketitle
\tableofcontents
\chapter{Introduction}
In our previous work\cite{hasnip} we showed how to compute the
electronic properties of transition metal surfaces.
% Blah blah blah
%
% Bibliography
\addcontentsline{toc}{chapter}{\sc Bibliography}
\bibliography{thesis}
\bibliographystyle{plain}
\end{document}
Ahora ejecuta LATEX como siempre, pero luego deberá ejecutarlo para definir las referencias correctas y, finalmente, volverbibtex a ejecutarlo para colocarlas en los lugares correctos. Es un poco engorroso, pero queda muy bien.
Puede establecer el estilo de la bibliografía utilizando \bibliographystyle{my_bib_style}, donde my_bib_stylees el prefijo del archivo de estilo de bibliografía que desea utilizar
Efectos de texto
Texto
Si desea enfatizar el texto, puede usar el comando \emph{}, que resaltará el texto entre llaves, generalmente poniéndolo en cursiva. También puede especificar este y otros efectos de forma más directa:
- \emph{} enfatiza el texto (generalmente en cursiva)
- {\em some_text } También enfatiza el texto (generalmente en cursiva), ¡pero tenga en cuenta la diferente ubicación de los corchetes!
- {\bf some_text } pone el texto en negrita, ¡pero tenga en cuenta la diferente colocación de los corchetes!
- \textrm{} Establece el texto en la fuente romana normal
- \textit{} Establece el texto en cursiva
- \textbf{} Establece el texto en negrita
- \texttt{} Establece texto en el "teletipo", fuente de ancho fijo
- \textsc{} Establece el texto en la tipografía "versalitas"; todo estará en mayúsculas, pero las letras mayúsculas se escribirán un poco más grandes que las letras normales.
Matemáticas
En el modo matemático hay comandos correspondientes:
- \mathrm{} Establece el texto en la fuente romana normal
- \mathtt{} Establece texto en el "teletipo", fuente de ancho fijo
- \mathit{} Establece el texto en cursiva
- \mathbf{} Establece el texto en negrita
Ficheros grandes
Include
Si estamos escribiendo un documento grande como una tesis o un libro, usualmente será mas manejero si dividmos el fichero .tex en varios más pequeños. En latex es muy fácil usando el comando \include. Se puede crear un fichero en el cual se crearan las deficiones necesarias y luego un fichero diferente para cada capítulo:
\documentclass[12pt,final]{book}
\usepackage{fancyheadings,graphicx,cite,setspace,lscape}
\usepackage{wrapfig,color,multicol}
\include{definitions}
% Only chapters go into the table of contents
\setcounter{tocdepth}{0}
\definecolor{gray}{gray}{0.8}
\begin{document}
\begin{titlepage}
\title{\Huge{\texttgoth{My Opus Magnum}}}
\author{\sc by Phil Hasnip}
\date{}
\end{titlepage}
\maketitle
\pagenumbering{roman}
\include{halftitle}
\include{frontstuff}
\tableofcontents
\include{preface}
\include{halftitle}
\pagenumbering{arabic}
\include{introduction}
\include{theory}
\include{initial_results}
\include{better_theory}
\include{nice_results}
\include{conclusions}
% Bibliography
\addcontentsline{toc}{chapter}{\sc Bibliography}
\bibliography{thesis}
\bibliographystyle{smooth}
\end{document}
Los documentos incluidos se pondrán en el documento como si hiciceramos copy&paste y nos permite organizar mejor el contenido.
Tus propios estilos.
Si te encuentras definiendo los mismos márgenes o comandos una y otra vez, quizás quieras crear tu propio archivo de estilo. Los archivos de estilo tienen la extensión .sty y son básicamente una lista de comandos LATEX. No tienen preámbulo y se pueden usar con el comando \usepackage como cualquier otro archivo de estilo.
Extras
Entre las docenas de elementos LATEX que hemos descuidado, hay uno o dos que
no encajan perfectamente en esta presentación, pero que a veces son útiles.
Contenidos y secciones
Un título solo se numerará si su profundidad no supera secnumdepth
y solo aparecerá en la página de contenido si su profundidad no supera el valor
de tocdepth. Por ejemplo, al hacer:
\setcounter{tocdepth}{2}
\setcounter{secnumdepth}{3}
Hará que la sección 1.4.3 se numere, pero no aparecerá en el índice. También
puede usar un nombre más corto en el índice.
\subsection[Pagebreaks etc] {Pagebreaks, space, footnotes, references}
Guiones y guiones
En LATEX, se puede obtener un guion más largo usando dos o tres guiones,
por ejemplo, --o ---. El guion corto se usa en palabras con guion, como
"coordenada", el más largo para rangos numéricos como "2--3", y el más largo
para un guion en texto, ¡así!.
Tamaños de página y márgenes
Aunque LATEX tiene valores predeterminados bastante buenos para la mayoría
de los propósitos, ocasionalmente querrás anularlos, en cuyo caso puedes usar:
\paperwidth=15.5cm
\paperheight=23.25cm
\textwidth=11.625cm
\textheight=17.438cm
Para establecer el ancho del papel y cuánto espacio desea dedicar al texto.
También puedes configurar los distintos márgenes usando:
% Driver margin is 1in=2.54cm by default so command below effectively
% sets the oddsidemargin to 1.292cm
\oddsidemargin=-1.248cm
\evensidemargin=5.543cm
\topmargin=-1.52cm
\headheight=0.48cm
% shift margins to allow room for binding
\addtolength{\oddsidemargin}{0.5cm}
\addtolength{\evensidemargin}{-0.5cm}
Notas al pie
Puedes usar el comando \footnote{} para añadir una nota al pie en tu
texto. LATEX insertará un pequeño número en superíndice donde coloques el
comando \footnote{}, y la nota al pie aparecerá al final de la página
junto al número correspondiente.
Interlineado
Probablemente solo necesites esto si un documento formal (como una tesis)
requiere interlineado doble o uno y medio. Por si acaso, los comandos de LATEX
son bastante sencillos. Usa el paquete setspace y luego podrás usar los
entornos doublespace o onehalfspace a voluntad.
Otros símbolos
Hay muchísimos símbolos y comandos relacionados con símbolos definidos en
LATEX, pero algunos de los más útiles son:
\"{}Pone una diéresis sobre la siguiente letra, p. ej. Zo\"e
\'{} y \`poner el acento apropiado sobre la siguiente letra
\^{} coloca un cursor sobre la siguiente letra, p. ej. r\^ole
\i es la letra "i" sin el punto - muy útil si quieres ponerle un
acento encima, por ejemplo na\"{\i}ve
\copyright es el símbolo de copyright.
\pounds es el símbolo de la libra (moneda).
Tus propios comandos
A veces, querrá definir su propio comando. Para ello, utilice los comandos
\newcommand o \renewcommand (según esté definiendo un comando
nuevo o modificando uno existente) antes de iniciar el entorno del documento.
Por ejemplo:
% redefine vector style
\renewcommand{\vec}[1]{\ensuremath{\mathbf #1}}
% redefine matrix style
\renewcommand{\matrix}[1]{\ensuremath{\mathbf #1}}
Tenga en cuenta el uso de \ensuremath para asegurarse de que si el
comando se usa en texto normal, cambie automáticamente al modo matemático
(y viceversa).
El comando \renewcommand es muy potente y útil. El argumento opcional
indica cuántos argumentos se desea que tome el comando, y luego se hace
referencia a ellos usando #1, #2, etc. Por lo tanto, el comando \vec
definido anteriormente toma un solo argumento y, al usarlo, cambia al modo
matemático (si no lo está ya) y usa la fuente negrita matemática para componer
el argumento 1.
A continuación se muestra un ejemplo de un comando más complicado, que
define un elemento de matriz en notación de Dirac:
% define new matrix element, \ME command
\newcommand{\ME}[3]{\ensuremath{\left \langle \left. #1
\right. \right| #2 \left| \left. #3 \right. \right \rangle}}
Toma tres argumentos y los compone por separado asi que \ME{a}{M}{b} genera
una versión atractiva de < a | M | b > . Tenga en cuenta que usamos \langle y
\rangle para generar flechas atractivas, y \left y \right
para estirarlas a la altura adecuada para lo que va dentro de ellas.
Índices y glosarios
Si realmente desea producir una tesis de alta calidad, un índice es una gran
ventaja. Debe usar el paquete makeidx y el comando \makeindex en
el preámbulo. Cada palabra que desee indexar debe tener \index{Index_entry}.
Para imprimir el índice, simplemente escriba \printindex
Si realmente quieres presumir, quizás quieras incluir también un glosario.
Puedes usar el paquete makeidx para esto, y su uso es casi idéntico al
de crear índices: solo usa \makeglossary y \glossary en su lugar.
CheatSheet
KaTeX
Entre las docenas de elementos LATEX que hemos descuidado, hay uno o dos que no encajan perfectamente en esta presentación, pero que a veces son útiles.
Contenidos y secciones
Un título solo se numerará si su profundidad no supera secnumdepth y solo aparecerá en la página de contenido si su profundidad no supera el valor de tocdepth. Por ejemplo, al hacer:
\setcounter{tocdepth}{2}
\setcounter{secnumdepth}{3}
Hará que la sección 1.4.3 se numere, pero no aparecerá en el índice. También puede usar un nombre más corto en el índice.
\subsection[Pagebreaks etc] {Pagebreaks, space, footnotes, references}
Guiones y guiones
En LATEX, se puede obtener un guion más largo usando dos o tres guiones, por ejemplo, --o ---. El guion corto se usa en palabras con guion, como "coordenada", el más largo para rangos numéricos como "2--3", y el más largo para un guion en texto, ¡así!.
Tamaños de página y márgenes
Aunque LATEX tiene valores predeterminados bastante buenos para la mayoría de los propósitos, ocasionalmente querrás anularlos, en cuyo caso puedes usar:
\paperwidth=15.5cm \paperheight=23.25cm \textwidth=11.625cm \textheight=17.438cm
Para establecer el ancho del papel y cuánto espacio desea dedicar al texto.
También puedes configurar los distintos márgenes usando:
% Driver margin is 1in=2.54cm by default so command below effectively
% sets the oddsidemargin to 1.292cm
\oddsidemargin=-1.248cm
\evensidemargin=5.543cm
\topmargin=-1.52cm
\headheight=0.48cm
% shift margins to allow room for binding
\addtolength{\oddsidemargin}{0.5cm}
\addtolength{\evensidemargin}{-0.5cm}
Notas al pie
Puedes usar el comando \footnote{} para añadir una nota al pie en tu texto. LATEX insertará un pequeño número en superíndice donde coloques el comando \footnote{}, y la nota al pie aparecerá al final de la página junto al número correspondiente.
Interlineado
Probablemente solo necesites esto si un documento formal (como una tesis) requiere interlineado doble o uno y medio. Por si acaso, los comandos de LATEX son bastante sencillos. Usa el paquete setspace y luego podrás usar los entornos doublespace o onehalfspace a voluntad.
Otros símbolos
Hay muchísimos símbolos y comandos relacionados con símbolos definidos en LATEX, pero algunos de los más útiles son:
Tus propios comandos
A veces, querrá definir su propio comando. Para ello, utilice los comandos \newcommand o \renewcommand (según esté definiendo un comando nuevo o modificando uno existente) antes de iniciar el entorno del documento. Por ejemplo:
% redefine vector style
\renewcommand{\vec}[1]{\ensuremath{\mathbf #1}}
% redefine matrix style
\renewcommand{\matrix}[1]{\ensuremath{\mathbf #1}}
Tenga en cuenta el uso de \ensuremath para asegurarse de que si el comando se usa en texto normal, cambie automáticamente al modo matemático (y viceversa).
El comando \renewcommand es muy potente y útil. El argumento opcional indica cuántos argumentos se desea que tome el comando, y luego se hace referencia a ellos usando #1, #2, etc. Por lo tanto, el comando \vec definido anteriormente toma un solo argumento y, al usarlo, cambia al modo matemático (si no lo está ya) y usa la fuente negrita matemática para componer el argumento 1.
A continuación se muestra un ejemplo de un comando más complicado, que define un elemento de matriz en notación de Dirac:
% define new matrix element, \ME command
\newcommand{\ME}[3]{\ensuremath{\left \langle \left. #1
\right. \right| #2 \left| \left. #3 \right. \right \rangle}}
Toma tres argumentos y los compone por separado asi que \ME{a}{M}{b} genera una versión atractiva de < a | M | b > . Tenga en cuenta que usamos \langle y \rangle para generar flechas atractivas, y \left y \right para estirarlas a la altura adecuada para lo que va dentro de ellas.
Índices y glosarios
Si realmente desea producir una tesis de alta calidad, un índice es una gran ventaja. Debe usar el paquete makeidx y el comando \makeindex en el preámbulo. Cada palabra que desee indexar debe tener \index{Index_entry}. Para imprimir el índice, simplemente escriba \printindex
Si realmente quieres presumir, quizás quieras incluir también un glosario. Puedes usar el paquete makeidx para esto, y su uso es casi idéntico al de crear índices: solo usa \makeglossary y \glossary en su lugar.
KaTex es una libreria en JavaScript que permite introducir fórmulas LATEX dentro de una página web en HTML.
La forma mas sencilla de usarlo es via CDN añadiendo a la cabecera de la página web los estilos y el script correspondiente:
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.16.21/dist/katex.min.css"
integrity="sha384-zh0CIslj+VczCZtlzBcjt5ppRcsAmDnRem7ESsYwWwg3m/OaJ2l4x7YBZl9Kxxib"
crossorigin="anonymous">
<script defer src="https://cdn.jsdelivr.net/npm/katex@0.16.21/dist/katex.min.js"
integrity="sha384-Rma6DA2IPUwhNxmrB/7S3Tno0YY7sFu9WSYMCuulLhIqYSGZ2gKCJWIqhBWqMQfh"
crossorigin="anonymous"></script>
<script defer src="https://cdn.jsdelivr.net/npm/katex@0.16.21/dist/contrib/auto-render.min.js"
integrity="sha384-hCXGrW6PitJEwbkoStFjeJxv+fSOOQKOPbJxSfM6G5sWZjAyWhXiTIIAmQqnlLlh"
crossorigin="anonymous"
onload="renderMathInElement(document.body);"></script>
</head>
...
</html>
renderMathInElement(document.body) buscará en el documento todas las fórmulas encerradas entre "\(" y "\)" conviertiendo el texto en una fórmula. Por ejemplo, la siguiente secuencia:
<p>\( R=\frac{\sqrt{2}L \rho I}{S} \)</p>
Se verá así:
Aun así, existe otra alternativa que consiste en editar nuestro fichero .tex hacer una captura de pantalla y copiar la imagen como una imagen en nuestro archivo web. Y si no nos gusta, podemos usar la página Equation Editor para crear nuestra fórmula y descargarla en formato imagen (.svg, .gif, .png).
Distribución LATEX
Para Windows existen dos distribuciones básicas de LaTeX: MiKTex y TeX Live.
No son ni mejor ni pero ninguna de ellas, tan solo comentar que mientras que las últimas versiones de MiKTeX no ofrecen soporte para Windows7 (hay que buscar la versión 0.21 o anteriores para que funcione), TeX Live si lo soporta; sin embargo, este ocupa unos 8GB y el instalador es lento, lo que hace que instalarlo sea una tortura. Además de no ofrecer soporte para windows 7 hay que deshabilitar las actualizaciones porque si no no funcionará.
En ambos entornos vienen todos los archivos necesarios para trabajar con LaTeX y con el editor TexWorks.
En este artículo se menciona el programa TeXnicCenter que ofrece un entorno mas amigable que TexWorks.