使用 amsbook 抑制目录中章节的页码

使用 amsbook 抑制目录中章节的页码

我想隐藏文档目录中章节的页码。WME:

\documentclass{amsbook}

\begin{document}

\begin{titlepage}
\begin{center}
{ \huge \bfseries A title}
\end{center}
\end{titlepage}

\tableofcontents
\mainmatter

\chapter{First chapter}
\section{First section of first chapter}
Some blah, blah...
\section{Second section of first chapter}
Some more blah, blah...
\section{Third section of first chapter}
Some more blah, blah...

\end{document}

在目录中,章节和章节的页码是重复的。这就是我想避免章节页码的原因。我在这里尝试了以下想法: 仅省略目录中章节标题的页码 但没有成功。另外,该tocloft包似乎不适用于该类amsbook。还有其他想法吗?

答案1

似乎amsbook与不兼容,tocloft所以没有简单的解决方法。不过,让我们尝试将这个技巧添加到序言中(根据编辑朱博布斯' 建议):

\makeatletter
\def\@tocline#1#2#3#4#5#6#7{\relax
  \ifnum #1>\c@tocdepth % then omit
  \else
    \par \addpenalty\@secpenalty\addvspace{#2}%
        \begingroup \hyphenpenalty\@M
    \@ifempty{#4}{%
      \@tempdima\csname r@tocindent\number#1\endcsname\relax
    }{%
      \@tempdima#4\relax
    }%
    \parindent\z@ \leftskip#3\relax \advance\leftskip\@tempdima\relax
    \rightskip\@pnumwidth plus4em \parfillskip-\@pnumwidth
    #5\leavevmode\hskip-\@tempdima #6\nobreak\relax
    \ifnum #1=0
    \hfil\hbox to\@pnumwidth{}
    \else
    \hfil\hbox to\@pnumwidth{\@tocpagenum{#7}}\fi
    \par
    \nobreak
    \endgroup
  \fi}
\makeatother

这重新定义了\@tocline命令,如果目录中当前行的深度为 0(即它是一个章节),那么它将不会打印页码。

查看结果:

在此处输入图片描述

相关内容