TOC anidado incorrectamente en el panel lateral del visor de PDF

TOC anidado incorrectamente en el panel lateral del visor de PDF

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, sectionel nivel en ToC no volverá al nivel de sección de marcadores.

El bookmarkpaquete se encarga de esto; de lo contrario hyperref, los usos manuales \phantomsectionson otra solución, pero peor, desde mi punto de vista.

Otra ventaja del bookmarkpaquete 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}

información relacionada