todonotes 与 amsbook 类的问题

todonotes 与 amsbook 类的问题

我正在尝试将 todonotes 与amsbookdocumentclass 结合使用。我可以将 todo(使用\todo{fix this})添加到部分文本,并且我可以使用 为目录生成 Todo 列表\todototoc,但编译时出现一些问题。

通过查看todonotes文档,我发现该软件包与 存在已知冲突,amsart并且文档中提供了修复程序。修复程序不太管用amsbook,而且我不太了解它的作用,无法对其进行编辑。

问题是,在编译 LaTeX 时,我收到警告,提示\todototoc未定义控制序列。忽略警告并继续编译,我发现\todo我创建的未与列表标题放在同一页上。

下面是一个小的可行示例。

\documentclass[a4paper,10pt]{amsbook}  

 \usepackage[linktocpage]{hyperref} % for links
 \usepackage{todonotes} 


  \begin{document}

  \title{A sample book in amsbook style}
   \author{me}
   \maketitle

   \tableofcontents
    \todototoc  % put an entry for the list of todos in the  table of contents

    % \listoftodos   This is the usual command for making a list of to dos

   % The following was taken from the todonotes documentation on how to resolve a problem with the amsart class.
   % It doesn't quite work for amsbook as the list entries are put on the page after the "Todo list" heading.

   \makeatletter
   \providecommand\@dotsep{5}
   \makeatother
   \listoftodos\relax


    \chapter{The test chapter}
    Some text\todo{really need some more text!}

    \end{document}   

有人有什么想法吗?谢谢。

答案1

问题是用两个参数amsbook定义\@starttoc(我认为这不是一个明智的决定)。因此,您必须重新定义\listoftodos才能正确传递\@starttoc所需内容:

\documentclass[a4paper,10pt]{amsbook}

\usepackage{todonotes}
\usepackage[linktocpage]{hyperref} % for links

\makeatletter
\providecommand\@dotsep{5}
\renewcommand{\listoftodos}[1][\@todonotes@todolistname]{%
  \@starttoc{tdo}{#1}}
\makeatother

\begin{document}

\title{A sample book in amsbook style}
\author{me}
\maketitle

\tableofcontents

\listoftodos

\chapter{The test chapter}
Some text\todo{really need some more text!}

\end{document}

\todototoc不需要,因为amsbook会照顾它。

相关内容