amsbook+thmtools:“\listoftheorems”指向文档的第一页,而不是定理列表

amsbook+thmtools:“\listoftheorems”指向文档的第一页,而不是定理列表

thmtools在文档中使用该包amsbook并用 进行编译pdflatex。目录中生成的超链接应该指向定理列表,但错误地指向了文档的第一页。下面可以找到 MWE。

我可以通过添加来部分解决该问题

\cleardoublepage
\phantomsection\addcontentsline{toc}{chapter}{\listtheoremname}

就在之前\listoftheorems。现在链接正确地指向定理列表,但目录包含定理列表中的条目。

如果有人能提示如何解决这个问题,我将非常感激。

梅威瑟:

\documentclass{amsbook}
\usepackage{amsthm,thmtools}
\usepackage{hyperref}

\declaretheorem[numberwithin=chapter,name=Theorem]{theorem}

\makeatletter
\providecommand\@dotsep{5}
\def\listtheoremname{List of theorems}
\makeatother

\begin{document}

\frontmatter
\title{Example}
\author{J. Doe}
\address{Earth}
\email{[email protected]}

\begin{abstract}
  Bla bla.
\end{abstract}

\maketitle
\setcounter{page}{4}

\tableofcontents
\listoftheorems

\mainmatter

\chapter{One}

\begin{theorem}
  Some theorem.
\end{theorem}

\backmatter
\end{document}

答案1

由于某种原因,在将目录条目添加到定理列表时,\listoftheoremsfrom不会添加正确的超链接。它也不提供 PDF 大纲的自动书签。thmtools

\cleardoublepage与“after”\tableofcontents结合使用\phantomsection将提供正确的超链接锚点。

\documentclass{amsbook}
\usepackage{amsthm,thmtools}
\usepackage{hyperref}

\declaretheorem[numberwithin=chapter,name=Theorem]{theorem}

\makeatletter
\providecommand\@dotsep{5}
\def\listtheoremname{List of theorems}
\makeatother

\begin{document}

\frontmatter
\title{Example}
\author{J. Doe}
\address{Earth}
\email{[email protected]}

\begin{abstract}
  Bla bla.
\end{abstract}

\maketitle
\setcounter{page}{4}

\tableofcontents
\cleardoublepage
\phantomsection
\pdfbookmark{\listtheoremname}{\listtheoremname}
\listoftheorems


\mainmatter

\chapter{One}

\begin{theorem}
  Some theorem.
\end{theorem}

\backmatter
\end{document}

相关内容