다음은 내 문제의 최소한의 예입니다.
\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}
라텍스에 의해 생성된 목차는 다음과 같이 정확해 보입니다.
Contents
a section
foo
another section
bar
pdflatex로 이것을 두 번 컴파일하면 PDF 뷰어(Linux의 Evince 애플리케이션)가 알고 있는 목차가 생성되어 측면 창에 표시됩니다. 해당 측면 창의 계층 구조가 잘못되었습니다.
a section
1. foo
another section
2. bar
왜 이런 일이 발생하며 어떻게 해결합니까?
답변1
현재 책갈피 수준보다 높은 일부 항목이 포함된 내용 줄을 수동으로 추가하면 책갈피 수준이 재설정되지 않습니다. 즉, section
ToC의 수준은 책갈피의 섹션 수준으로 다시 이동되지 않습니다.
패키지 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}