ドキュメントの途中でセクションカウンタをリセットすると、Hyperref が正しく動作しなくなりました。

ドキュメントの途中でセクションカウンタをリセットすると、Hyperref が正しく動作しなくなりました。

各パートのセクション カウンターをリセットすると、目次からのハイパー参照によってドキュメントの間違った部分が表示されます。-- パート II のセクション 1 の目次をクリックすると、ハイパー参照によってパート I のセクション 1 が表示されます。-- この問題を解決する方法はありますか。

パート I セクション 1 セクション 2 セクション 3 パート II セクション 1 セクション 2

よろしくお願いします。

答え1

あなたが説明した現象は、

\setcounter{section}{0}

カウンターを手動でリセットします。エラーを再現する簡単なドキュメントを以下に示します。

\documentclass{article}
\usepackage[colorlinks]{hyperref}

\begin{document}

\tableofcontents

\part{Test part one}
\setcounter{section}{0}
\clearpage
\section{First test section in part one}
\clearpage
\section{Second test section in part one}

\part{Test part two}
\setcounter{section}{0}
\clearpage
\section{First test section in part two}
\clearpage
\section{Second test section in part two}

\end{document} 

各パーツのカウンターを手動でリセットする代わりに、以下を使用してリセットします\@addtoreset

\documentclass{article}
\usepackage[colorlinks]{hyperref}

\makeatletter
\@addtoreset{section}{part}
\makeatother

\begin{document}

\tableofcontents

\part{Test part one}
\clearpage
\section{First test section in part one}
\clearpage
\section{Second test section in part one}

\part{Test part two}
\clearpage
\section{First test section in part two}
\clearpage
\section{Second test section in part two}

\end{document} 

\clearpage単なる例のコマンドです。

関連情報