> 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/overleaf-learn-latex-pt/estrutura-do-documento/04-indices.md).

# Índices

Em alguns documentos grandes, por exemplo livros, é costume fazer uma lista alfabética contendo os termos principais. Com o LaTeX e o programa de apoio **imakeidx**, um índice pode ser gerado com bastante facilidade.

## Introdução

Vamos ver um exemplo simples em funcionamento.

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

\begin{document}
\section{Introdução}
Neste exemplo, várias palavras-chave\index{palavras-chave} serão usadas
que são importantes e merecem aparecer no Índice\index{Índice}.

Termos como gerar\index{gerar} e alguns\index{outros} irão
também aparecer.

\printindex
\end{document}
```

[Abra este exemplo no 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)

A imagem a seguir mostra a saída produzida pelo exemplo acima:

![Index1OLV2.png](/files/1b3d6c0e3cdb88813e51d409ec93526910b6110c)

Primeiro, o pacote é incluído no preâmbulo pela linha

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

Depois, o comando `\makeindex` é obrigatório para que o índice funcione e pode aceitar alguns parâmetros para personalizar sua aparência; nas próximas seções isso ficará claro.

Para adicionar uma entrada ao índice, o comando `\index{}` é usado, onde a palavra a ser adicionada é inserida como parâmetro. Tenha cuidado, isso não imprimirá a palavra na posição atual, mas apenas no índice.

Por fim, o comando `\printindex` de fato renderizará o índice. Se você estiver usando uma localidade especial por meio do `babel` pacote, o título será traduzido de acordo.

Observação: em vez de `imakeidx`, o pacote `makeidx` pode ser importado, mas oferece menos possibilidades de personalização.

## Índices no Overleaf

Ao adicionar um índice a um projeto no Overleaf, é **importante notar** que, para o índice compilar corretamente, o principal `.tex` arquivo precisa estar no diretório raiz do projeto, *fora de quaisquer pastas*. Isso garante que os arquivos auxiliares necessários para gerar o índice sejam armazenados em cache de forma que fiquem acessíveis ao compilador.

## Entradas e subentradas

Como mencionado na seção anterior, o comando `\index` adicionará a palavra passada a ele ao índice, mas essa não é a única forma como ele pode ser usado.

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

\begin{document}
\section{Introdução}
Neste exemplo, várias palavras-chave\index{palavras-chave} serão usadas
que são importantes e merecem aparecer no Índice\index{Índice}.

Termos como gerar\index{gerar} e alguns\index{outros} também
aparecerão. Os termos no índice também podem ser aninhados \index{Índice!aninhado}

\clearpage

\section{Segunda seção}
Esta segunda seção\index{seção} pode incluir alguma palavra especial,
e expandir as já usadas\index{palavras-chave!usadas}.

\printindex
\end{document}
```

[Abra este exemplo no 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)

A imagem a seguir mostra a saída produzida pelo exemplo acima:

![Index2OLV2.png](/files/012d120937b76f7733742b4380736a2add7a591f)

É prática comum estender os termos no índice para incluir adjetivos especiais. Por exemplo, a palavra *Campo* pode ter um significado especial se for precedida pelo adjetivo *finito* ou seguida por *de característica 0*, e pode ser um pouco trabalhoso adicionar diferentes tipos de *Campo*como entradas separadas no índice. Nesses casos, você pode adicionar um ponto de exclamação "!" que adicionará os termos após esse sinal como subentradas da palavra principal *Campo*.

No exemplo, a palavra "Índice" tem a palavra "aninhado" como subentrada.

## Formatando o Índice

A formatação simples do índice, como alterar o título do índice, adicionar várias colunas e mudar a largura das colunas, pode ser feita facilmente passando valores opcionais para `\makeindex`:

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

\begin{document}
\section{Introdução}
Neste exemplo, várias palavras-chave\index{palavras-chave} serão usadas, as quais
são importantes e merecem aparecer no Índice\index{Índice}.

Termos como gerar\index{gerar} e alguns\index{outros} também
aparecerão. Os termos no índice também podem ser aninhados \index{Índice!aninhado}

\clearpage

\section{Segunda seção}
Esta segunda seção\index{seção} pode incluir alguma palavra especial,
e expandir as já usadas\index{palavras-chave!usadas}.

\printindex
\end{document}
```

[Abra este exemplo no 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)

A imagem a seguir mostra a saída produzida pelo exemplo acima:

![Index3OLV2.png](/files/4db12604c4cb0e0ae69b156a62b74fb911449901)

Neste exemplo, o índice é apresentado em um formato de três colunas com o parâmetro `columns=3`, e o título é alterado para "Índice Alfabético" por `title=Índice Alfabético`; esses parâmetros são passados para `\makeindex` no preâmbulo. Consulte o [guia de referência](#reference-guide) para uma lista dos parâmetros disponíveis e sua descrição.

### Usando arquivos de estilo

Para personalizar ainda mais o índice, pode-se usar um arquivo de estilo. Os arquivos de estilo informam `makeindex` o formato pretendido da saída final. Os arquivos de estilo contêm uma lista de `<key, value>` de pares. Por exemplo, se for necessário agrupar os termos no índice pela letra inicial e alinhar os números das páginas à direita, o próximo arquivo de estilo fará o trabalho:

```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 "
```

As chaves alteram diferentes elementos na saída do índice:

* `headings_flag 1` permite o agrupamento, inserindo o cabeçalho do grupo (símbolos, números ou letras) antes de um novo grupo.
* `heading_prefix` formata o cabeçalho a ser inserido antes do início de uma nova letra. Usa comandos normais de formatação para a família da fonte, a altura da fonte e o alinhamento, mas as barras invertidas devem ser escapadas usando barra invertida dupla em vez de uma.
* `item_0` é o que será inserido entre dois itens primários.
* `delim_*` é o delimitador a ser inserido entre a chave e o primeiro número da página.

Para obter uma lista completa de chaves e valores a usar em um arquivo .ist, consulte [A tabela incluída no guia de referência](#keys-to-create-styles-files).

Suponha que o arquivo anterior seja salvo como "example\_style.ist". Para usá-lo no documento, adicionamos o parâmetro `options= -s example_style.ist` ao `\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{Introdução}
Neste exemplo, várias palavras-chave\index{palavras-chave} serão usadas, as quais são importantes e merecem aparecer no Índice\index{Índice}.

Termos como gerar\index{gerar}, uma ótima\index{ótima} lista e alguns outros\index{outros} termos que possam ser importantes\index{importante}
também aparecerão. Os termos no índice também podem ser aninhados \index{Índice!aninhado}

\clearpage

\section{Segunda seção}
Esta segunda seção\index{seção} pode incluir alguma palavra especial e expandir as já usadas\index{palavras-chave!usadas}.

\printindex
\end{document}
```

[Abra um exemplo usando um arquivo de estilo de índice no 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=)

A imagem a seguir mostra a saída produzida pelo exemplo acima:

![Index4OLV2.png](/files/35c73919aaf4d0989659e2c9727aa55664ac83ab)

## Incluindo o índice no sumário

Por padrão, o índice não é incluído no sumário; isso pode ser facilmente ajustado.

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

\begin{document}
\tableofcontents

\section{Introdução}
Neste exemplo, várias palavras-chave\index{palavras-chave} serão
usadas, as quais são importantes e merecem aparecer no
Índice\index{Índice}.

Termos como gerar\index{gerar} e alguns\index{outros}
também aparecerão. Os termos no índice também podem ser
aninhados \index{Índice!aninhado}

\clearpage

\section{Segunda seção}
Esta segunda seção\index{seção} pode incluir alguma palavra especial
e expandir as já usadas\index{palavras-chave!usadas}.

\printindex
\end{document}
```

[Abra este exemplo no 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)

A imagem a seguir mostra a saída produzida pelo exemplo acima:

![Index5OLV2.png](/files/2fdd6bc325c6a3272c2060a76784ab20ead062b4)

Ao adicionar o parâmetro `intoc` ao comando `\makeindex` a inclusão do título do índice no sumário é ativada.

## Guia de referência

### Parâmetros do comando \makeindex

**title**

Título a ser composto no início do índice específico. Um exemplo é apresentado em formatação do índice.

**intoc**

Se esta opção for passada, o título do índice é colocado no sumário.

**columns**

Usa a sintaxe key=value, o valor deve ser um inteiro representando o número de colunas. O valor padrão é 2.

**columnsep**

Especifica unidades que representam a separação entre as colunas. A sintaxe deve ser key=value, por exemplo columnsep=2em.

**columnseprule**

Se a opção for passada, uma linha vertical será renderizada entre as colunas.

### Chaves para criar arquivos de estilo

A tabela a seguir mostra as chaves, os valores padrão e as descrições para criar arquivos de estilo .ist.

| key                         | Descrição                                                                                                                                                                                                                                                                                                                                   |
| --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `atual <char>`              | Símbolo '@' que indica que a próxima entrada deve aparecer no arquivo de saída.                                                                                                                                                                                                                                                             |
| `arg_close <char>`          | '}' Delimitador de fechamento para o argumento da entrada do índice.                                                                                                                                                                                                                                                                        |
| `arg_open <char>`           | '{' Delimitador de abertura para o argumento da entrada do índice.                                                                                                                                                                                                                                                                          |
| `encap <char>`              | ' Símbolo que indica que o restante da lista de argumentos deve ser usado como o comando encapsulador para o número da página.                                                                                                                                                                                                              |
| `escape <char>`             | '\\\\' Símbolo que escapa a letra seguinte, a menos que seu símbolo precedente seja ele próprio um símbolo de escape. Observação: quote é usado para escapar a letra que o segue imediatamente, mas, se for precedido por um símbolo de escape, é tratado como um caractere comum. Esses dois símbolos devem ser distintos.                 |
| `keyword <string>`          | "\\\indexentry" Comando que informa ao makeindex que seu argumento é uma entrada do índice.                                                                                                                                                                                                                                                 |
| `level <char>`              | '!' Delimitador que denota um novo nível de subitem.                                                                                                                                                                                                                                                                                        |
| `quote <char>`              | '"' Observação: quote é usado para escapar a letra que o segue imediatamente, mas, se for precedido por um símbolo de escape, é tratado como um caractere comum. Esses dois símbolos devem ser distintos.                                                                                                                                   |
| `range_close <char>`        | ')' Delimitador de fechamento indicando o fim de um intervalo explícito de páginas.                                                                                                                                                                                                                                                         |
| `range_open <char>`         | '(' Delimitador de abertura indicando o início de um intervalo explícito de páginas.                                                                                                                                                                                                                                                        |
| `preamble <string>`         | "\\\begin{theindex}\n" Preâmbulo do arquivo de saída.                                                                                                                                                                                                                                                                                       |
| `postamble <string>`        | "\n\n\\\end{theindex}\n" Pós-âmbulo do arquivo de saída.                                                                                                                                                                                                                                                                                    |
| `setpage_prefix <string>`   | "\n \\\setcounter{page}{" Prefixo do comando que define o número inicial da página.                                                                                                                                                                                                                                                         |
| `setpage_suffix <string>`   | "}\n" Sufixo do comando que define o número inicial da página.                                                                                                                                                                                                                                                                              |
| `group_skip <string>`       | "\n\n \\\indexspace\n" Espaço vertical a ser inserido antes do início de um novo grupo.                                                                                                                                                                                                                                                     |
| `headings_flag <string>`    | 0 Sinal que indica o tratamento dos novos cabeçalhos de grupo, inseridos antes de um novo grupo (símbolos, números e as 26 letras): valores positivos fazem com que uma letra maiúscula seja inserida entre prefixo e sufixo, e valores negativos fazem com que uma letra minúscula seja inserida (o padrão é 0, que não produz cabeçalho). |
| `heading_prefix <string>`   | "" Prefixo de cabeçalho a ser inserido antes do início de uma nova letra.                                                                                                                                                                                                                                                                   |
| `symhead_positive <string>` | "Símbolos" Cabeçalho para símbolos a ser inserido se headings\_flag for positivo.                                                                                                                                                                                                                                                           |
| `symhead_negative <string>` | "símbolos" Cabeçalho para símbolos a ser inserido se headings\_flag for negativo.                                                                                                                                                                                                                                                           |
| `numhead_positive <string>` | "Números" Cabeçalho para números a ser inserido se headings\_flag for positivo.                                                                                                                                                                                                                                                             |
| `numhead_negative <string>` | "números" Cabeçalho para números a ser inserido se headings\_flag for negativo.                                                                                                                                                                                                                                                             |
| `item_0 <string>`           | "\n \\\item " Comando a ser inserido entre dois itens primários (nível 0).                                                                                                                                                                                                                                                                  |
| `item_1 <string>`           | "\n \\\subitem " Comando a ser inserido entre dois itens secundários (nível 1).                                                                                                                                                                                                                                                             |
| `item_2 <string>`           | "\n \\\subsubitem " Comando a ser inserido entre dois itens de nível 2.                                                                                                                                                                                                                                                                     |
| `item_01 <string>`          | "\n \\\subitem " Comando a ser inserido entre um item de nível 0 e um item de nível 1.                                                                                                                                                                                                                                                      |
| `item_x1 <string>`          | "\n \\\subitem " Comando a ser inserido entre um item de nível 0 e um item de nível 1, em que o item de nível 0 não tem números de página associados.                                                                                                                                                                                       |
| `item_12 <string>`          | "\n \\\subsubitem " Comando a ser inserido entre um item de nível 1 e um item de nível 2.                                                                                                                                                                                                                                                   |
| `item_x2 <string>`          | "\n \\\subsubitem " Comando a ser inserido entre um item de nível 1 e um item de nível 2, em que o item de nível 1 não tem números de página associados.                                                                                                                                                                                    |
| `delim_0 <string>`          | ", " Delimitador a ser inserido entre uma chave de nível 0 e seu primeiro número de página (padrão: vírgula seguida de um espaço em branco).                                                                                                                                                                                                |
| `delim_1 <string>`          | ", " Delimitador a ser inserido entre uma chave de nível 1 e seu primeiro número de página (padrão: vírgula seguida de um espaço em branco).                                                                                                                                                                                                |
| `delim_2 <string>`          | ", " Delimitador a ser inserido entre uma chave de nível 2 e seu primeiro número de página (padrão: vírgula seguida de um espaço em branco).                                                                                                                                                                                                |
| `delim_n <string>`          | ", " Delimitador a ser inserido entre dois números de página para a mesma chave em qualquer nível (padrão: vírgula seguida de um espaço em branco).                                                                                                                                                                                         |
| `delim_r <string>`          | "--" Delimitador a ser inserido entre os números de página inicial e final de um intervalo.                                                                                                                                                                                                                                                 |
| `delim_t <string>`          | "" Delimitador a ser inserido no final de uma lista de páginas. Esse delimitador não afeta entradas que não têm lista de páginas associada.                                                                                                                                                                                                 |
| `encap_prefix <string>`     | "\\\\" Primeira parte do prefixo do comando que encapsula o número da página.                                                                                                                                                                                                                                                               |
| `encap_infix <string>`      | "{" Segunda parte do prefixo do comando que encapsula o número da página.                                                                                                                                                                                                                                                                   |
| `encap_suffix <string>`     | "}". Sufixo do comando que encapsula o número da página.                                                                                                                                                                                                                                                                                    |
| `line_max <number>`         | 72 Comprimento máximo de uma linha na saída, além do qual a linha é quebrada.                                                                                                                                                                                                                                                               |
| `indent_space <string>`     | "\t\t" Espaço a ser inserido na frente de uma linha quebrada (padrão: duas tabulações).                                                                                                                                                                                                                                                     |
| `indent_length <number>`    | 16 Comprimento de indent\_space (padrão: 16, equivalente a 2 tabulações).                                                                                                                                                                                                                                                                   |

## Leitura adicional

Para mais informações, consulte:

* [Glossários](/latex/overleaf-learn-latex-pt/estrutura-do-documento/05-glossaries.md)
* [Listas de tabelas e figuras](/latex/overleaf-learn-latex-pt/figuras-e-tabelas/03-lists-of-tables-and-figures.md)
* [Sumário](/latex/overleaf-learn-latex-pt/estrutura-do-documento/02-table-of-contents.md)
* [Seções e capítulos](/latex/overleaf-learn-latex-pt/estrutura-do-documento/01-sections-and-chapters.md)
* [Hiperlinks](/latex/overleaf-learn-latex-pt/estrutura-do-documento/09-hyperlinks.md)
* [Suporte a idiomas internacionais](/latex/overleaf-learn-latex-pt/idiomas/03-international-language-support.md)
* [Referências cruzadas entre seções e equações](/latex/overleaf-learn-latex-pt/estrutura-do-documento/03-cross-referencing-sections-equations-and-floats.md)
* [Gerenciamento em um projeto grande](/latex/overleaf-learn-latex-pt/estrutura-do-documento/07-management-in-a-large-project.md)
* [Projetos LaTeX com vários arquivos](/latex/overleaf-learn-latex-pt/estrutura-do-documento/08-multi-file-latex-projects.md)
* [Documentação do pacote 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/overleaf-learn-latex-pt/estrutura-do-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.
