Como adicionar texto explicativo a uma página de índice?

Como adicionar texto explicativo a uma página de índice?

Nota: Respostas sobre qualquer um dos pacotes geradores de índice seriam benéficas, comosplitidxou o padrãomakeidx.

Já vi alguns livros com texto explicativo na página de índice após oÍndicetítulo, mas antes da lista de índice real. Como isso pode ser feito sem modificar manualmente os arquivos .idxou .ind? O comando printindexparece terrivelmente incapaz.

Aqui está um exemplo adequado, mas lamentavelmente pequeno:

insira a descrição da imagem aqui

Aqui está um MWE que usa o pacote makeidx.

\documentclass[12pt]{book}
\usepackage{makeidx}\makeindex
\usepackage{lipsum}

\begin{document}

\lipsum[1]
\index{1@One makeidx entry!With a subentry}

%How to put text on the following index page?
\printindex
%Be sure to run: makeindex <filename>


\end{document}

Aqui está um MWE que usa o pacote splitidxe cria dois índices:

\documentclass[12pt]{book}
\usepackage[split]{splitidx}\makeindex
    \newindex{firstindex}
    \newindex{secondindex}
\usepackage{lipsum}

\begin{document}

\lipsum[1]
\sindex[firstindex]{1@One splitindex entry!Using firstindex}
\sindex[secondindex]{Another splitindex entry!Using secondindex}

%How to put text on the following index pages?
\printindex[firstindex][A splitindex: firstindex]
\printindex[secondindex][A splitindex: secondindex]
%Be sure to run: makeindex <filename>-firstindex; makeindex <filename>-secondindex

\end{document}

Responder1

Use o pacoteimakeidxem vez de makeidx. Este pacote é mais robusto e permite:

  • Índice em várias colunas com\makeindex[columns=n]

  • Texto antes deÍndicee depois detítulocom \indexprologue{Text ...}. Este comando deve ser colocado exatamente antes de \printindex.

  • Execute makeindexautomaticamente.

  • Suporte para splitindexroteiro de Markus Kohm.

  • Outras opções descritas em seudocumentação.

Exemplo de MWE

\documentclass[12pt]{book}
\usepackage{imakeidx}\makeindex
\usepackage{lipsum}

\begin{document}

\lipsum[1]
\index{1@One entry!With a subentry}~\index{a@Other entry}
\indexprologue{\noindent How to put text on the following index page?}
\printindex


\end{document}

Também é possível gerar diversos índices com este pacote. Neste caso você deve carregar o pacote com a splitindexopção e executar makeindexem <filename>-firstindexand <filename>-secondindex(se firstindexe secondindexforem os nomes dos seus índices). Ou para fazer isso automaticamente executando pdflatexas opções --enable-write18ou -shell-escape.

Observação:Não é necessário nomear todos os índices (como em splitidx). Simplesmente deixe o índice "principal" sem nome e nomeie os outros. E usar \makeindex(sem argumentos para oprincipalíndice) e \makeindex[name=...,title=...]para os demais índices. Observe o exemplo

\documentclass[12pt]{book}
\usepackage[splitindex]{imakeidx}
    \makeindex
    \makeindex[name=secondindex,title=Second Index]
\usepackage{lipsum}

\begin{document}

\lipsum[1]
\index{1@One splitindex entry!Using firstindex}
\index[secondindex]{Another splitindex entry!Using secondindex}

\indexprologue{\noindent How to put text on the following index pages?}
\printindex

\indexprologue{\noindent How to put text on the following index pages in the second index?}
\printindex[secondindex]
%Be sure to run: makeindex <filename>-splitindex; makeindex <filename>-secondindex
%Only if you didn't run pdflatex with the `--enable-write18` option.

\end{document}

Então é criado um arquivo <filename>-splitindex.idxpara oprincipalíndice e <filename>-secondindex.idxpara o segundo. Oprincipalindex usa \indexnamepara o título do índice.

Correr

pdflatex --enable-write18 <filename>

fará isso automaticamente por você.

\documentclass[12pt]{book}
\usepackage[splitindex]{imakeidx}
    \makeindex[name=firstindex,title=First Index]
    \makeindex[name=secondindex,title=Second Index]
\usepackage{lipsum}

\begin{document}

\lipsum[1]
\index[firstindex]{1@One splitindex entry!Using firstindex}
\index[secondindex]{Another splitindex entry!Using secondindex}

\indexprologue{\noindent How to put text on the following index pages?}
\printindex[firstindex]

\indexprologue{\noindent How to put text on the following index pages in the second index?}
\printindex[secondindex]
%Be sure to run: makeindex <filename>-firstindex; makeindex <filename>-secondindex

\end{document}

informação relacionada