portada

Crear un índice de contenidos en LaTeX

Tabla de Contenido

Crear un índice de contenidos con LaTeX es un proceso automático si hemos definido correctamente la estructura del documento utilizando los comandos para ello.

Los comandos principales para estructurar el documento son \section, \subsection y \subsubsection. Si además trabajamos en un documento de clase book o report, podemos añadir también capítulos con \chapter y partes con \part.

Una vez creada la estructura podemos crear el índice de contenidos simplemente con el comando \tableofcontents.

El siguiente ejemplo crea un índice de contenidos a partir de los capítulos y secciones definidas:

\documentclass{book}
\usepackage[spanish]{babel}
\usepackage[utf8]{inputenc}
\begin{document}
\tableofcontents
\chapter{Introducción}
\section{Conocimientos previos}
\section{Estado del arte}
\chapter{Fundamentos teóricos}
\section{Teoría clásica}
\subsection{Definición de variables}
\subsection{Pruebas y refutaciones}
\section{Hipótesis}
\chapter{Resultados}
\section{Simulación de resultados}
\subsection{Suposiciones}
\subsection{Modelos}
\section{Resultados preliminares}
\section{Resultados postprocesados}
\subsection{Valores atípicos}
\subsection{Correlaciones}
\chapter{Conclusiones}
\end{document}
Índice de contenidos en LaTeX

Dependiendo del programa que utilices para crear los archivos en LaTeX es posible que necesites compilar más de una vez para que el índice de contenidos aparezca actualizado.

En la jerarquía introducida con los comandos \chapter, \section, etc. cada elemento ocupa un nivel distinto.

Por defecto, LaTeX muestra en el índice de contenidos solo los títulos hasta un nivel 2, es decir, incluye las subsecciones pero no las subsubsecciones. Este parámetro puede ser modificado mediante el comando

\setcounter{tocdepth}{X}

Donde el valor X indica el nivel de detalle que queremos mostrar en el índice de contenidos. Por ejemplo, si escribimos

\setcounter{tocdepth}{0}

Se mostrarán únicamente los nombres de los capítulos:

Índice de contenidos (solo capítulos)

Índice de figuras


De un modo muy similar podemos crear un índice de figuras en LaTeX con el comando \listoffigures.

Para que esto funcione es necesario haber asignado primero una leyenda a las imágenes que queremos que aparezcan en el índice de figuras. Esto debe hacerse con el comando \caption. El siguiente ejemplo muestra un índice de figuras en un documento con cinco figuras.

\documentclass{book}
\usepackage[spanish]{babel}
\usepackage[utf8]{inputenc}
\usepackage{graphicx}
\begin{document}
\tableofcontents
\listoffigures
\chapter{África}
\begin{figure}
\includegraphics{mapa_africa}
\caption{Mapa de África}
\end{figure}
\chapter{América}
\begin{figure}
\includegraphics{mapa_america}
\caption{Mapa de América}
\end{figure}
\chapter{Asia}
\begin{figure}
\includegraphics{mapa_asia}
\caption{Mapa de Asia}
\end{figure}
\chapter{Europa}
\begin{figure}
\includegraphics{europa}
\caption{Mapa de Europa}
\end{figure}
\chapter{Oceania}
\begin{figure}
\includegraphics{mapa_Ooceania}
\caption{Mapa de Oceanía}
\end{figure}
\end{document}

En algunos casos, especialmente si la leyenda de una figura es muy larga, podemos querer mostrar una descripción diferente en el índice de figuras. El comando \caption permite especificar dos descripciones, una entre corchetes para el índice de figuras y otra entre llaves que aparece debajo de la imagen.

\caption[Descripción que aparece en el índice de figuras]{Descripción que aparece debajo la figura}

Por defecto la lista de figuras no aparece en el índice de contenidos. Si quieres que aparezca tienes que introducir adicionalmente el siguiente comando en el preámbulo:

\addcontentsline{toc}{chapter}{\listfigurename}

Es decir,

\tableofcontents
\addcontentsline{toc}{chapter}{\listfigurename}
\listoffigures

Índice de tablas


El índice de tablas puede crearse con el comando \listoftables. Al igual que en el caso del índice de figuras es necesario haber definido una leyenda para todas las tablas que queremos que aparezcan en el índice mediante el comando \caption.

\documentclass{book}
\usepackage[spanish]{babel}
\usepackage[utf8]{inputenc}
\begin{document}
\tableofcontents
\listoftables
\chapter{África}
\begin{table}
\centering
\begin{tabular}{ c | c }
Dato & Valor \\ \hline
Superficie & 30370000 km$^2$\\
Población & 1225 millones\\
Países & 54
\end{tabular}
\caption{Datos de África}
\end{table}
\chapter{América}
\begin{table}
...
\caption{Datos de America}
...
\end{table}
\chapter{Asia}
\begin{table}
...
\caption{Datos de Asia}
...
\end{table}
\chapter{Europa}
\begin{table}
...
\caption{Datos de Europa}
...
\end{table}
\chapter{Oceania}
\begin{table}
...
\caption{Datos de Oceania}
...
\end{table}
\end{document}

Si queremos que las descripciones que aparecen en el índice de tablas y debajo de las tablas sea distinta debemos introducir las dos descripciones mediante el comando \caption:

\caption[Descripción que aparece en el índice de tablas]{Descripción que aparece debajo la tabla}

Como recordatorio es importante saber que, por defecto, la versión española del paquete babel traduce el término table como cuadro. Si quieres que la traducción sea tabla recuerda añadir la opción es-tabla junto con el paquete babel:

\usepackage[spanish,es-tabla]{babel}

Al igual que en el caso del índice de figuras, el índice de tablas no aparece por defecto en el índice de contenidos. Si queremos que aparezca tenemos que indicarlo mediante:

\tableofcontents
\addcontentsline{toc}{chapter}{\listtablename}
\listoffigures

Resumen