Cómo añadir un índice de palabras en LaTeX

Un buen libro de consulta tiene que tener un índice de palabras. Y LaTeX permite crearlo fácilmente con el paquete makeidx.
El paquete makeidx funciona de una manera un poco curiosa. Primero, antes de begin{document} tendremos que poner makeindex, para que cree el índice. Y con printindex (dentro ya del cuerpo del documento), insertaremos el índice donde queramos.

documentclass[a4paper,openright,12pt]{report}
usepackage[spanish]{babel} % español
usepackage[latin1]{inputenc} % acentos sin codigo
usepackage{makeidx}

makeindex % para que cree el índice (pero aún no decimos dónde)

begin{document}

addcontentsline{toc}{chapter}{Índice alfabético} % para que lo añada al índice de contenidos
printindex % para que ponga el índice aquí

end{document}

Nota: Es importante añadir la línea addcontentsline, para que el índice de palabras aparezca en el índice de contenidos.

Ahora, cuando queremos añadir una palabra al índice, basta con poner justo detrás de la palabra index{nombre}:

Algunos de mis animales favoritos son el erizoindex{erizo} y el armadilloindex{armadillo}.

Para poner palabras como dependientes de otras, se utiliza el comando:
index{palabrapadre!palabrahija}:

Las floresindex{flores} son muy bonitas. Como la rosaindex{flores!rosa}, la margaritaindex{flores!margarita} o la violetaindex{flores!violeta}.

Por último, si queremos poner un “véase” o “véase también”, hay que poner |see{palabra} o |seealso{palabra}.

Alegra tu cuarto con alguna plantaindex{planta|see{flores}}.
Alegra tu cuarto con unas cuantas florecitasindex{florecitas}index{florecitas|seealso{flores}}.


Cuando la palabra que vamos a usar en el índice, tiene símbolos no anglosajones, hay que tener cuidado. El paquete makeidx, por ejemplo, entiende que “a” y “á” son dos letras distintas, y las ordena alfabéticamente separadas y mal. Por ejemplo, si escribimos:

Ejemplo: lanaindex{lana}, lápizindex{lápiz}, lataindex{lata}.

Ordenaría incorrectamente como: lápiz, lana, lata.

Lo que habría que poner sería:

Ejemplo: lanaindex{lana}, lápizindex{lapiz @ lápiz}, lataindex{lata}.

Así, le estamos diciendo a LaTeX que ordene “lápiz” como si fuera “lapiz”.

En el caso de que la palabra tuviera una “ñ”, LaTeX debería ordenarla después de todas las n. Para conseguir eso, por ejemplo, podemos sustituir “ñ” por “nzz” en la palabra:

Ejemplo: manoindex{mano}, manuelindex{manuel}, mañoindex{manzzo @ maño}.


Un último comentario para los usuarios de TeXnicCenter. Dependiendo de la versión, puede que el índice de palabras no aparezca. Si ese es nuestro caso, para solucionarlo, en “Build/Define Output Profiles…“, en “Command line arguments to pass to MakeIndex” hay que poner “%tm” en vez de “%bm”.

Deja un comentario