TOC неправильно вложен в боковую панель средства просмотра PDF-файлов

TOC неправильно вложен в боковую панель средства просмотра PDF-файлов

Ниже приведен минимальный пример моей проблемы:

\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}

Оглавление, сгенерированное latex, выглядит правильно, примерно так:

Contents
a section
  foo
another section
  bar

Когда я компилирую это (дважды) с помощью pdflatex, он также генерирует таблицу содержания, о которой знает мой просмотрщик pdf (приложение Evince на Linux), и отображает ее в боковой панели. Эта боковая панель имеет неправильную иерархическую структуру:

a section
  1. foo
    another section
      2. bar

Почему это происходит и как это исправить?

решение1

Добавление строки содержимого вручную с некоторой записью выше текущего уровня закладки не сбрасывает уровень закладки, т.е. sectionуровень в оглавлении не будет смещен обратно на уровень раздела закладок.

Пакет bookmarkпозаботится об этом, в противном случае hyperrefручное \phantomsectionиспользование является другим, но худшим решением, на мой взгляд.

Еще одним преимуществом bookmarkпакета является то, что структура (панель закладок) корректна уже после одного запуска компиляции.

\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}

Связанный контент