domingo, 4 de octubre de 2015

Cómo poner "página" en el índice de contenidos

En esta entrada explico cómo añadir la palabra "Página" en el índice de contenidos, justo encima de la columna con el número de página. Para ello, podemos usar el comando "\addtocontents", que también se usaba para añadir a la lista de contenidos, las partes del documento que por defecto, no aparecían en dicha lista, como los "\chapter*", la lista de tablas y figuras, y la bibliografía.

Justo después de "\begin{document}", y antes de otros "\addtocontest", hay que añadir la siguiente línea: 

\addtocontents{toc}{\hfill \textbf{Página} \par}

Donde "\hfill" se utiliza para llevar la palabra "Página" al final de línea; y "\par" añade un salto de página. El resultado se muestra a continuación:


Teniendo esto en cuenta, es fácil modificar un poco la lista de contenidos. Por ejemplo, si queremos que, además de "Página", ponga "Capítulos" y una línea horizontal, podríamos poner:

\addtocontents{toc}{\hspace{-7.5mm} \textbf{Capítulos}}
\addtocontents{toc}{\hfill \textbf{Página} \par}
\addtocontents{toc}{\vspace{-2mm} \hspace{-7.5mm} \hrule \par}


\chapter*{Agradecimientos}
\addcontentsline{toc}{chapter}{Agradecimientos}

\tableofcontents

\chapter{Encantamientos}

\chapter{Magia}

\chapter{Hechizos}

Cuyo resultado es:


Solo un par de comentarios más. Si estamos trabajando con [spanish]{babel}, los párrafos empiezan con una pequeña sangría. Para que esto no nos ocurra ahora con la palabra "Capítulos", y que esté alineada con el resto del índice, hemos eliminado la sangría con un espacio negativo, con "\hspace{-7.5mm}".

La línea horizontal la hemos añadido con "\hrule". Otros comandos para dibujar líneas, como "\rule", no funcionan. Por último, como esta línea aparecen por defecto muy abajo, las hemos subido con "\vspace{-2mm}".

6 comentarios:

Álvaro Martín Miguel dijo...

Hola Luis, estoy haciendo mi proyecto de fin de carrera con LaTeX y tengo un par de problemitas con mi página de índice.

Lo primero, estoy usando el paquete {fancy} y tengo todas las páginas con el encabezado y el pie que quiero excepto la primera página del índice en la que sólo sale un triste "1". He probado ya a escribir \thispagestyle{fancy} después de \tableofcontents pero no hay manera.

En segundo lugar (quizá más complicado) quiero cambiar la numeración del índice de tal forma que en vez de la página en la que está, me indique el capítulo y la página. Algo así, no sé si me explico:

1. Antecedentes del Aeropuerto 1.1
1.1 El Plan Director ......................................................................... 1.2
1.2 Marco legal existente ................................................................ 1.5

Ya he conseguido iniciar el número de la primera página de cada capítulo al 1, pero no soy capaz de que eso me aparezca en el índice.

Muchísimas gracias de antemano y gracias por resolver con tu blog casi todas las dudas que me han ido surgiendo.

¡ Un saludo crack !

Álvaro

Luis dijo...

Hola Álvaro,
para los encabezados, muy fácil. Tienes que editarlos dos veces. Antes del índice de contenidos, los pones todos en blanco. Y luego, después del índice, vuelves a editarlos, indicando lo que te gustaría que hubiera (título del capítulo, número de página, etc.) Tengo una entrada donde ya explico eso mismo.

En cuanto a añadir el número de capítulo, se me ocurre lo siguiente. En vez de usar \pagenumbering.

\renewcommand{\thepage}{\thechapter.\arabic{page}}
\setcounter{page}{1}

Hasta luego

Joany Mariño dijo...

Hola Luis,

Esta entrada me resultó muy útil para modificar los índices de la tesis de acuerdo a los requisitos de mi posgrado. En el formato me piden colocar las palabras "Tabla" y "Figura" en los índices correspondientes, lo cual hice con:

\addtocontents{lof}{\textbf{Figura} \hfill \textbf{Página} \par}
\addtocontents{lot}{\textbf{Tabla} \hfill \textbf{Página} \par}

No obstante, en el formato también me piden que el número de la página esté centrado debajo de la palabra "Página" y no alineado a la izquierda, así mismo, en el índice de tablas y figuras el número de la tabla/figura debería estar centrado bajo la palabra "Tabla"/"Figura" en lugar de alineado a la derecha. Hasta ahora no he encontrado cómo resolver este detalle, intenté con:

\newcommand{\cftpnumalign}{c}
\renewcommand{\cftpnumalign}{c}

como dice en la documentación de tocloft pero no funciona. ¿Se te ocurre algo?


Saludos,

Luis dijo...

Hola Joany,
fiuuu, qué chungo.

Bueno, lo de \newcommand{\cftpnumalign}{c} lo que alinea son los números de páginas entre ellos. Es decir:

_2
123

Lo que habría que hacer es mover un poco la palabra "Página", para que quede encima de los numeritos, o añadir un margen izquierdo a los números... Pero no se me ocurre cómo hacerlo. Con la siguiente línea, sí consigo mover un poco la palabra "Página"... (pero ahora queda mal la línea recta). Qué difícil... XD

\addtocontents{toc}{\hspace{108mm} \textbf{\mbox{Página}} \par}

Si alguien sabe cómo hacerlo, que lo diga. :-)

Joany Mariño dijo...

Hola Luis,

Muchas gracias por responder. Le di varias vueltas y resolví dejarlo con el formato original, después de todo es sólo el índice xD

Saludos y Feliz navidad.

Luis dijo...

Me alegro, y feliz Navidad. :-)