PDA

Ver la versión completa : Ajuste de índice



tejhon
25/06/2008, 09:46
Hola,

Tengo una preguntilla a ver si alguien me la sabe resolver, que he estado buscando la solución por la red y no encuentro lo que busco.

Resulta que tengo en el preámbulo (con clase de documento libro) definido las siguientes profundidades de contador:


\setcounter{tocdepth}{3} % Incluye en el índice hasta las subsubsecciones
\setcounter{secnumdepth}{3} % Numeración hasta las subsubsecciones

Sí, ya lo sé, no debería numerar hasta tan profundo y quizás en el índice tampoco debería llegar hasta tan lejos, pero como soy un ansia, pues eso no tiene solución jajaja.

Bueno, la cuestión es que con esto así, todo iba bien, hasta que se llegan a números altos (capítulos y demás de dos dígitos), y se aprietan las cosas. Pongo una captura de la parte que queda bien, y otra de la parte que queda apretado.

Índice en la parte que queda bien:

http://c.imagehost.org/0533/ndice_parte_bien.jpg


Índice en la parte que queda apretado:

http://c.imagehost.org/0354/ndice_parte_achuchao.jpg

Bueno, a ver si alguien me da alguna solución que no haya pensado yo. A mí se me ocurre: o bien no numerar las subsubsecciones (incluso no ponerlas en el índice), o añadir un fantasma o espacio vacío (cosa tediosa y que no me convence...).

Pues eso, que saludos, gracias por la atención prestada y a ver si alguien me puede echar un cable ;).

gmedina
25/06/2008, 17:30
Hola tejhon,

Una opción es usar el paquete tocloft (http://www.ctan.org/tex-archive/help/Catalogue/entries/tocloft.html) y modificar el espacio reservado para escribir los números de las subsubsecciones en la ToC, tal como muestra el siguiente ejemplo:

\documentclass{book}
\usepackage{tocloft}

\setcounter{secnumdepth}{3}
\setcounter{tocdepth}{3}

\setlength{\cftsubsubsecnumwidth}{5em}

\setcounter{chapter}{11}

\begin{document}

\tableofcontents

\chapter{Primero}
\section{uno uno}
\subsection{uno uno uno}
\subsubsection{uno uno uno uno}
\subsubsection{uno uno uno uno}
\subsubsection{uno uno uno uno}
\subsubsection{uno uno uno uno}
\subsubsection{uno uno uno uno}
\subsubsection{uno uno uno uno}
\subsubsection{uno uno uno uno}
\subsubsection{uno uno uno uno}
\subsubsection{uno uno uno uno}
\subsubsection{uno uno uno uno}
\subsubsection{uno uno uno uno}
\subsubsection{uno uno uno uno}
\subsubsection{uno uno uno uno}

\end{document}
En la documentación del paquete (http://www.ctan.org/tex-archive/macros/latex/contrib/tocloft/tocloft.pdf) encontrarás otras opciones para personalizar fácilmente la ToC (o la LoF o la LoT).

gmedina
26/06/2008, 05:02
Ahora que tengo algo más de tiempo, explico cómo lograrlo sin usar el paquete tocloft.

En este caso, hay que redefinir el comando \l@subsubsection que es quien se encarga de formatear las subsubsecciones en la ToC. Por defecto, este comando está definido en la clase book así:

\newcommand*\l@subsubsection{\@dottedtocline{3}{7. 0em}{4.1em}}
El comando \@dottedtocline toma tres argumentos; el primero indica el nivel de la unidad seccional correspondiente (3, en el caso de las subsubsecciones en book o report); el segundo indica la sangría que se deja antes de poner el número correspondiente a la subsubsección y el tercero indica el espacio reservado para escribir el número de la subsubsección.

Así que lo que debe hacerse es aumentar el valor del tercer argumento (4.1em por defecto) a 5em o a la longitud que se desee.

Tenemos ntonces algo del estilo

\documentclass{book}

\setcounter{secnumdepth}{3}
\setcounter{tocdepth}{3}

\makeatletter
\renewcommand*\l@subsubsection{\@dottedtocline{3}{ 7em}{5em}}
\makeatother

\setcounter{chapter}{11}

\begin{document}

\tableofcontents

\chapter{Primero}
\section{uno uno}
\subsection{uno uno uno}
\subsubsection{uno uno uno uno}
\subsubsection{uno uno uno uno}
\subsubsection{uno uno uno uno}
\subsubsection{uno uno uno uno}
\subsubsection{uno uno uno uno}
\subsubsection{uno uno uno uno}
\subsubsection{uno uno uno uno}
\subsubsection{uno uno uno uno}
\subsubsection{uno uno uno uno}
\subsubsection{uno uno uno uno}
\subsubsection{uno uno uno uno}
\subsubsection{uno uno uno uno}
\subsubsection{uno uno uno uno}

\end{document}
De hecho, básicamente lo que hace el comando que puse antes usando tocloft es lo que estoy haciendo ahora manualmente.

tejhon
26/06/2008, 17:21
Gmedina, :r: :r: :r: Me descubro, sí señor, no sólo has dado con una solución a mi problema, sino con dos jeje. Muchas gracias, a ver cuando nos vas dando tu código cuenta cliente del banco y te vamos ingresando donativos, por que te los estás ganando jejeje. Saludos cordiales.