> For the complete documentation index, see [llms.txt](https://overleaf-pro.ayaka.space/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://overleaf-pro.ayaka.space/latex/es/estructura-del-documento/04-indices.md).

# Índices

En algunos documentos grandes, por ejemplo libros, es habitual hacer una lista alfabética que contenga los términos principales. Con LaTeX y el programa de apoyo **imakeidx**, se puede generar un índice con bastante facilidad.

## Introducción

Veamos un ejemplo simple en funcionamiento.

```latex
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{imakeidx}
\makeindex

\begin{document}
\section{Introducción}
En este ejemplo, se usarán varias palabras clave\index{palabras clave}
que son importantes y merecen aparecer en el Índice\index{Índice}.

Términos como generar\index{generar} y algunos\index{otros}
también aparecerán.

\printindex
\end{document}
```

[Abre este ejemplo en Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Index+example\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%5BT1%5D%7Bfontenc%7D%0A%5Cusepackage%7Bimakeidx%7D%0A%5Cmakeindex%0A%0A%5Cbegin%7Bdocument%7D%0A%5Csection%7BIntroduction%7D%0AIn+this+example%2C+several+keywords%5Cindex%7Bkeywords%7D+will+be+used+%0Awhich+are+important+and+deserve+to+appear+in+the+Index%5Cindex%7BIndex%7D.%0A%0ATerms+like+generate%5Cindex%7Bgenerate%7D+and+some%5Cindex%7Bothers%7D+will+%0Aalso+show+up.+%0A%0A%5Cprintindex%0A%5Cend%7Bdocument%7D)

La siguiente imagen muestra la salida producida por el ejemplo anterior:

![Index1OLV2.png](/files/b68fa2c03952742cd01ddba2183b51d67e8a116a)

Primero, el paquete se incluye en el preámbulo con la línea

```latex
\usepackage{imakeidx}
```

Luego, el comando `\makeindex` es obligatorio para que el índice funcione y puede tomar algunos parámetros para personalizar su apariencia; en las siguientes secciones esto quedará claro.

Para añadir una entrada al índice, el comando `\index{}` se utiliza, donde la palabra que se va a añadir se inserta como parámetro. Ten cuidado, esto no imprimirá la palabra en la posición actual, sino solo en el índice.

Por último, el comando `\printindex` representará realmente el índice. Si estás usando una localización especial mediante el `babel` paquete, el título se traducirá en consecuencia.

Nota: en lugar de `imakeidx`, el paquete `makeidx` puede importarse, pero ofrece menos posibilidades de personalización.

## Índices en Overleaf

Al añadir un índice a un proyecto en Overleaf, es **importante tener en cuenta** que, para que el índice se compile correctamente, el archivo principal `.tex` debe estar en el directorio raíz del proyecto, *fuera de cualquier carpeta*. Esto garantiza que los archivos auxiliares necesarios para generar el índice se almacenen en caché de manera que el compilador pueda acceder a ellos.

## Entradas y subentradas

Como se mencionó en la sección anterior, el comando `\index` añadirá la palabra que se le pase al índice, pero esta no es la única forma en que puede usarse.

```latex
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{imakeidx}
\makeindex

\begin{document}
\section{Introducción}
En este ejemplo, se usarán varias palabras clave\index{palabras clave}
que son importantes y merecen aparecer en el Índice\index{Índice}.

Términos como generar\index{generar} y algunos\index{otros} también
aparecerán. Los términos del índice también pueden anidarse \index{Índice!anidado}

\clearpage

\section{Segunda sección}
Esta segunda sección\index{sección} puede incluir alguna palabra especial,
y ampliar las ya usadas\index{palabras clave!usadas}.

\printindex
\end{document}
```

[Abre este ejemplo en Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Index+example+2\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%5BT1%5D%7Bfontenc%7D%0A%5Cusepackage%7Bimakeidx%7D%0A%5Cmakeindex%0A%0A%5Cbegin%7Bdocument%7D%0A%5Csection%7BIntroduction%7D%0AIn+this+example%2C+several+keywords%5Cindex%7Bkeywords%7D+will+be+used+%0Awhich+are+important+and+deserve+to+appear+in+the+Index%5Cindex%7BIndex%7D.%0A%0ATerms+like+generate%5Cindex%7Bgenerate%7D+and+some%5Cindex%7Bothers%7D+will+also+%0Ashow+up.+Terms+in+the+index+can+also+be+nested+%5Cindex%7BIndex%21nested%7D%0A%0A%5Cclearpage%0A%0A%5Csection%7BSecond+section%7D%0AThis+second+section%5Cindex%7Bsection%7D+may+include+some+special+word%2C+%0Aand+expand+the+ones+already+used%5Cindex%7Bkeywords%21used%7D.%0A%0A%5Cprintindex%0A%5Cend%7Bdocument%7D)

La siguiente imagen muestra la salida producida por el ejemplo anterior:

![Index2OLV2.png](/files/845e6e2209f268e2e18c8117e031bcef05e86bcd)

Es una práctica común ampliar los términos del índice para incluir adjetivos especiales. Por ejemplo, la palabra *Campo* puede tener un significado especial si va precedida por el adjetivo *finito* o seguida de *de característica 0*, y puede resultar un poco engorroso añadir distintos tipos de *Campo*como entradas separadas en el índice. Para esos casos, puedes añadir un signo de exclamación "!" que añadirá los términos posteriores a esta marca como subentradas de la palabra principal *Campo*.

En el ejemplo, la palabra "Índice" tiene la palabra "anidado" como subentrada.

## Formato del índice

El formato sencillo del índice, como cambiar el título del índice, añadir varias columnas y cambiar el ancho de columna, puede hacerse fácilmente pasando valores opcionales a `\makeindex`:

```latex
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{imakeidx}
\makeindex[columns=3, title=Índice alfabético]

\begin{document}
\section{Introducción}
En este ejemplo, se usarán varias palabras clave\index{palabras clave} que
son importantes y merecen aparecer en el Índice\index{Índice}.

Términos como generar\index{generar} y algunos\index{otros} también
aparecerán. Los términos del índice también pueden anidarse \index{Índice!anidado}

\clearpage

\section{Segunda sección}
Esta segunda sección\index{sección} puede incluir alguna palabra especial,
y ampliar las ya usadas\index{palabras clave!usadas}.

\printindex
\end{document}
```

[Abre este ejemplo en Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Index+example+3\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%5BT1%5D%7Bfontenc%7D%0A%5Cusepackage%7Bimakeidx%7D%0A%5Cmakeindex%5Bcolumns%3D3%2C+title%3DAlphabetical+Index%5D%0A%0A%5Cbegin%7Bdocument%7D%0A%5Csection%7BIntroduction%7D%0AIn+this+example%2C+several+keywords%5Cindex%7Bkeywords%7D+will+be+used+which+%0Aare+important+and+deserve+to+appear+in+the+Index%5Cindex%7BIndex%7D.%0A%0ATerms+like+generate%5Cindex%7Bgenerate%7D+and+some%5Cindex%7Bothers%7D+will+also+%0Ashow+up.+Terms+in+the+index+can+also+be+nested+%5Cindex%7BIndex%21nested%7D%0A%0A%5Cclearpage%0A%0A%5Csection%7BSecond+section%7D%0AThis+second+section%5Cindex%7Bsection%7D+may+include+some+special+word%2C+%0Aand+expand+the+ones+already+used%5Cindex%7Bkeywords%21used%7D.%0A%0A%5Cprintindex%0A%5Cend%7Bdocument%7D)

La siguiente imagen muestra la salida producida por el ejemplo anterior:

![Index3OLV2.png](/files/5c5b57ec5af737cfd652c0a8da68c9ce5c8158dc)

En este ejemplo, el índice se presenta en un formato de tres columnas con el parámetro `columns=3`, y el título se cambia a "Índice alfabético" mediante `title=Índice alfabético`; estos parámetros se pasan a `\makeindex` en el preámbulo. Consulte el [guía de referencia](#reference-guide) para obtener una lista de los parámetros disponibles y su descripción.

### Uso de archivos de estilo

Para una mayor personalización del índice se puede usar un archivo de estilo. Los archivos de estilo informan `makeindex` sobre el formato previsto del resultado final. Los archivos de estilo contienen una lista de `<key, value>` pares. Por ejemplo, si se necesita agrupar los términos del índice por su letra inicial y alinear los números de página a la derecha, el siguiente archivo de estilo hará el trabajo:

```latex
headings_flag 1

heading_prefix "\n\\centering\\large\\sffamily\\bfseries%
\\noindent\\textbf{"heading_suffix "}\\par\\nopagebreak\n"

item_0 "\n \\item \\small "

delim_0 " \\hfill "
delim_1 " \\hfill "
delim_2 " \\hfill "
```

Las claves cambian distintos elementos en la salida del índice:

* `headings_flag 1` permite agrupar insertando el encabezado del grupo (símbolos, números o letras) antes de un nuevo grupo.
* `heading_prefix` da formato al encabezado que se inserta antes de que comience una nueva letra. Utiliza comandos de formato habituales para la familia de fuente, la altura de la fuente y la alineación, pero las barras invertidas deben escaparse usando una doble barra invertida en lugar de una sola.
* `item_0` es lo que se insertará entre dos elementos primarios.
* `delim_*` es el delimitador que se insertará entre la clave y el primer número de página.

Para obtener una lista completa de claves y valores para usar en un archivo .ist, consulte [La tabla incluida en la guía de referencia](#keys-to-create-styles-files).

Suponga que el archivo anterior se guarda como "example\_style.ist". Para usarlo en el documento, añadimos el parámetro `options= -s example_style.ist` a la `\makeindex` comando.

```latex
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{imakeidx}
\makeindex[columns=3, title=Índice alfabético,
           options= -s example_style.ist]

\begin{document}

\tableofcontents

\section{Introducción}
En este ejemplo, se usarán varias palabras clave\index{palabras clave} que son importantes y merecen aparecer en el Índice\index{Índice}.

Términos como generar\index{generar}, una gran\index{grande} lista y algunos otros\index{otros} términos que podrían ser importantes\index{importantes}
también aparecerán. Los términos del índice también pueden anidarse \index{Índice!anidado}

\clearpage

\section{Segunda sección}
Esta segunda sección\index{sección} puede incluir alguna palabra especial, y ampliar las ya usadas\index{palabras clave!usadas}.

\printindex
\end{document}
```

[Abrir un ejemplo usando un archivo de estilo de índice en Overleaf](https://www.overleaf.com/project/new/template/20614?id=70756423\&templateName=Using+an+index+style+file\&latexEngine=pdflatex\&texImage=texlive-full%3A2020.1\&mainFile=)

La siguiente imagen muestra la salida producida por el ejemplo anterior:

![Index4OLV2.png](/files/d6202e6e3d1a29dcbd7eba0861a8d0f0530fc445)

## Incluir el índice en la tabla de contenidos

De forma predeterminada, el índice no se incluye en la tabla de contenidos; esto puede ajustarse fácilmente.

```latex
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{imakeidx}
\makeindex[columns=3, title=Índice alfabético, intoc]

\begin{document}
\tableofcontents

\section{Introducción}
En este ejemplo, se usarán varias palabras clave\index{palabras clave}
usadas que son importantes y merecen aparecer en el
Índice\index{Índice}.

Términos como generar\index{generar} y algunos\index{otros}
también aparecerán. Los términos del índice también pueden ser
anidados \index{Índice!anidado}

\clearpage

\section{Segunda sección}
Esta segunda sección\index{sección} puede incluir alguna palabra especial
palabra, y ampliar las ya usadas\index{palabras clave!usadas}.

\printindex
\end{document}
```

[Abre este ejemplo en Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Index+example+3\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%5BT1%5D%7Bfontenc%7D%0A%5Cusepackage%7Bimakeidx%7D%0A%5Cmakeindex%5Bcolumns%3D3%2C+title%3DAlphabetical+Index%2C+intoc%5D%0A%0A%5Cbegin%7Bdocument%7D%0A%5Ctableofcontents%0A%0A%5Csection%7BIntroduction%7D%0AIn+this+example%2C+several+keywords%5Cindex%7Bkeywords%7D+will+be+%0Aused+which+are+important+and+deserve+to+appear+in+the+%0AIndex%5Cindex%7BIndex%7D.%0A%0ATerms+like+generate%5Cindex%7Bgenerate%7D+and+some%5Cindex%7Bothers%7D+%0Awill+also+show+up.+Terms+in+the+index+can+also+be+%0Anested+%5Cindex%7BIndex%21nested%7D%0A%0A%5Cclearpage%0A%0A%5Csection%7BSecond+section%7D%0AThis+second+section%5Cindex%7Bsection%7D+may+include+some+special+%0Aword%2C+and+expand+the+ones+already+used%5Cindex%7Bkeywords%21used%7D.%0A%0A%5Cprintindex%0A%5Cend%7Bdocument%7D)

La siguiente imagen muestra la salida producida por el ejemplo anterior:

![Index5OLV2.png](/files/76a4ec0c99f19497914c66c1194ac89fc4004954)

Al añadir el parámetro `intoc` al comando `\makeindex` se habilita la inclusión del título del índice en la tabla de contenidos.

## Guía de referencia

### Parámetros para el comando \makeindex

**title**

Título que se debe componer al comienzo del índice específico. Se presenta un ejemplo en el formato del índice.

**intoc**

Si se pasa esta opción, el título del índice se coloca en la tabla de contenidos.

**columns**

Usa la sintaxis clave=valor; el valor debe ser un entero que represente el número de columnas. El valor predeterminado es 2.

**columnsep**

Especifica las unidades que representan la separación entre las columnas. La sintaxis debe ser clave=valor; por ejemplo, columnsep=2em.

**columnseprule**

Si se pasa la opción, se mostrará una regla vertical entre las columnas.

### Claves para crear archivos de estilo

La siguiente tabla muestra las claves, los valores predeterminados y las descripciones para crear archivos de estilo .ist.

| clave                       | Descripción                                                                                                                                                                                                                                                                                                                                                                   |
| --------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `actual <char>`             | '@' Símbolo que indica que la siguiente entrada aparecerá en el archivo de salida.                                                                                                                                                                                                                                                                                            |
| `arg_close <char>`          | '}' Delimitador de cierre para el argumento de la entrada del índice.                                                                                                                                                                                                                                                                                                         |
| `arg_open <char>`           | '{' Delimitador de apertura para el argumento de la entrada del índice.                                                                                                                                                                                                                                                                                                       |
| `encap <char>`              | ' Símbolo que indica que el resto de la lista de argumentos se usará como el comando encapsulador para el número de página.                                                                                                                                                                                                                                                   |
| `escape <char>`             | '\\\\' Símbolo que escapa la letra siguiente, a menos que su símbolo precedente sea a su vez un símbolo de escape. Nota: quote se usa para escapar la letra que le sigue inmediatamente, pero si va precedido por un símbolo de escape, se trata como un carácter ordinario. Estos dos símbolos deben ser distintos.                                                          |
| `keyword <string>`          | "\\\indexentry" Comando que indica a makeindex que su argumento es una entrada de índice.                                                                                                                                                                                                                                                                                     |
| `level <char>`              | '!' Delimitador que denota un nuevo nivel de subelemento.                                                                                                                                                                                                                                                                                                                     |
| `quote <char>`              | '"' Nota: quote se usa para escapar la letra que le sigue inmediatamente, pero si va precedido por un símbolo de escape, se trata como un carácter ordinario. Estos dos símbolos deben ser distintos.                                                                                                                                                                         |
| `range_close <char>`        | ')' Delimitador de cierre que indica el final de un rango de páginas explícito.                                                                                                                                                                                                                                                                                               |
| `range_open <char>`         | '(' Delimitador de apertura que indica el comienzo de un rango de páginas explícito.                                                                                                                                                                                                                                                                                          |
| `preamble <string>`         | "\\\begin{theindex}\n" Preámbulo del archivo de salida.                                                                                                                                                                                                                                                                                                                       |
| `postamble <string>`        | "\n\n\\\end{theindex}\n" Postámbulo del archivo de salida.                                                                                                                                                                                                                                                                                                                    |
| `setpage_prefix <string>`   | "\n \\\setcounter{page}{" Prefijo del comando que establece el número de página inicial.                                                                                                                                                                                                                                                                                      |
| `setpage_suffix <string>`   | "}\n" Sufijo del comando que establece el número de página inicial.                                                                                                                                                                                                                                                                                                           |
| `group_skip <string>`       | "\n\n \\\indexspace\n" Espacio vertical que se insertará antes de que comience un nuevo grupo.                                                                                                                                                                                                                                                                                |
| `headings_flag <string>`    | 0 Indicador del tratamiento de los encabezados de nuevos grupos, que se insertan antes de un nuevo grupo (símbolos, números y las 26 letras): los valores positivos hacen que se inserte una letra mayúscula entre el prefijo y el sufijo, y los valores negativos hacen que se inserte una letra minúscula (el valor predeterminado es 0, que no produce ningún encabezado). |
| `heading_prefix <string>`   | "" Prefijo del encabezado que se insertará antes de que comience una nueva letra.                                                                                                                                                                                                                                                                                             |
| `symhead_positive <string>` | "Symbols" Encabezado para símbolos que se insertará si headings\_flag es positivo.                                                                                                                                                                                                                                                                                            |
| `symhead_negative <string>` | "symbols" Encabezado para símbolos que se insertará si headings\_flag es negativo.                                                                                                                                                                                                                                                                                            |
| `numhead_positive <string>` | "Numbers" Encabezado para números que se insertará si headings\_flag es positivo.                                                                                                                                                                                                                                                                                             |
| `numhead_negative <string>` | "numbers" Encabezado para números que se insertará si headings\_flag es negativo.                                                                                                                                                                                                                                                                                             |
| `item_0 <string>`           | "\n \\\item " Comando que se insertará entre dos elementos primarios (nivel 0).                                                                                                                                                                                                                                                                                               |
| `item_1 <string>`           | "\n \\\subitem " Comando que se insertará entre dos elementos secundarios (nivel 1).                                                                                                                                                                                                                                                                                          |
| `item_2 <string>`           | "\n \\\subsubitem " Comando que se insertará entre dos elementos de nivel 2.                                                                                                                                                                                                                                                                                                  |
| `item_01 <string>`          | "\n \\\subitem " Comando que se insertará entre un elemento de nivel 0 y uno de nivel 1.                                                                                                                                                                                                                                                                                      |
| `item_x1 <string>`          | "\n \\\subitem " Comando que se insertará entre un elemento de nivel 0 y uno de nivel 1, donde el elemento de nivel 0 no tiene números de página asociados.                                                                                                                                                                                                                   |
| `item_12 <string>`          | "\n \\\subsubitem " Comando que se insertará entre un elemento de nivel 1 y uno de nivel 2.                                                                                                                                                                                                                                                                                   |
| `item_x2 <string>`          | "\n \\\subsubitem " Comando que se insertará entre un elemento de nivel 1 y uno de nivel 2, donde el elemento de nivel 1 no tiene números de página asociados.                                                                                                                                                                                                                |
| `delim_0 <string>`          | ", " Delimitador que se insertará entre una clave de nivel 0 y su primer número de página (predeterminado: coma seguida de un espacio en blanco).                                                                                                                                                                                                                             |
| `delim_1 <string>`          | ", " Delimitador que se insertará entre una clave de nivel 1 y su primer número de página (predeterminado: coma seguida de un espacio en blanco).                                                                                                                                                                                                                             |
| `delim_2 <string>`          | ", " Delimitador que se insertará entre una clave de nivel 2 y su primer número de página (predeterminado: coma seguida de un espacio en blanco).                                                                                                                                                                                                                             |
| `delim_n <string>`          | ", " Delimitador que se insertará entre dos números de página para la misma clave en cualquier nivel (predeterminado: coma seguida de un espacio en blanco).                                                                                                                                                                                                                  |
| `delim_r <string>`          | "--" Delimitador que se insertará entre los números de página inicial y final de un rango.                                                                                                                                                                                                                                                                                    |
| `delim_t <string>`          | "" Delimitador que se insertará al final de una lista de páginas. Este delimitador no afecta a las entradas que no tienen una lista de páginas asociada.                                                                                                                                                                                                                      |
| `encap_prefix <string>`     | "\\\\" Primera parte del prefijo del comando que encapsula el número de página.                                                                                                                                                                                                                                                                                               |
| `encap_infix <string>`      | "{" Segunda parte del prefijo del comando que encapsula el número de página.                                                                                                                                                                                                                                                                                                  |
| `encap_suffix <string>`     | "}". Sufijo del comando que encapsula el número de página.                                                                                                                                                                                                                                                                                                                    |
| `line_max <number>`         | 72 Longitud máxima de una línea en la salida, a partir de la cual la línea se ajusta.                                                                                                                                                                                                                                                                                         |
| `indent_space <string>`     | "\t\t" Espacio que se insertará delante de una línea ajustada (predeterminado: dos tabulaciones).                                                                                                                                                                                                                                                                             |
| `indent_length <number>`    | 16 Longitud de indent\_space (predeterminado: 16, equivalente a 2 tabulaciones).                                                                                                                                                                                                                                                                                              |

## Lectura adicional

Para más información, consulte:

* [Glosarios](/latex/es/estructura-del-documento/05-glossaries.md)
* [Listas de tablas y figuras](/latex/es/figuras-y-tablas/03-lists-of-tables-and-figures.md)
* [Tabla de contenidos](/latex/es/estructura-del-documento/02-table-of-contents.md)
* [Secciones y capítulos](/latex/es/estructura-del-documento/01-sections-and-chapters.md)
* [Hipervínculos](/latex/es/estructura-del-documento/09-hyperlinks.md)
* [Compatibilidad con idiomas internacionales](/latex/es/idiomas/03-international-language-support.md)
* [Referencias cruzadas a secciones y ecuaciones](/latex/es/estructura-del-documento/03-cross-referencing-sections-equations-and-floats.md)
* [Gestión en un proyecto grande](/latex/es/estructura-del-documento/07-management-in-a-large-project.md)
* [Proyectos de LaTeX de varios archivos](/latex/es/estructura-del-documento/08-multi-file-latex-projects.md)
* [documentación del paquete imakeidx](http://mirror.math.ku.edu/tex-archive/macros/latex/contrib/imakeidx/imakeidx.pdf)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://overleaf-pro.ayaka.space/latex/es/estructura-del-documento/04-indices.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
