El siguiente es un ejemplo mínimo de mi problema:
\documentclass{article}
\RequirePackage{hyperref}
\newenvironment{qu}[1][]{\par\addcontentsline{toc}{subsection}{ #1}}{\par}
\begin{document}
\tableofcontents
\addcontentsline{toc}{section}{a section}
\begin{qu}[foo]\end{qu}
\addcontentsline{toc}{section}{another section}
\begin{qu}[bar]\end{qu}
\end{document}
La tabla de contenidos generada por látex parece correcta, más o menos así:
Contents
a section
foo
another section
bar
Cuando compilo esto (dos veces) con pdflatex, también genera una tabla de contenido que mi visor de PDF (la aplicación Evince en Linux) conoce y muestra en un panel lateral. Ese panel lateral tiene una estructura jerárquica incorrecta:
a section
1. foo
another section
2. bar
¿Por qué sucede esto y cómo lo soluciono?
Respuesta1
Agregar una línea de contenido manualmente con alguna entrada superior al nivel de marcador actual no restablece el nivel de marcador, es decir, section
el nivel en ToC no volverá al nivel de sección de marcadores.
El bookmark
paquete se encarga de esto; de lo contrario hyperref
, los usos manuales \phantomsection
son otra solución, pero peor, desde mi punto de vista.
Otra ventaja del bookmark
paquete es que el esquema (el panel de marcadores) es correcto después de ejecutar una compilación.
\documentclass{article}
\usepackage[open=true]{bookmark}
\newenvironment{qu}[1][]{\par\addcontentsline{toc}{subsection}{ #1}}{\par}
\begin{document}
\tableofcontents
\addcontentsline{toc}{section}{a section}
\begin{qu}[foo]
\end{qu}
\addcontentsline{toc}{section}{another section}
\begin{qu}[bar]\end{qu}
\end{document}