在 amsart 的目录中将页码放在章节标题旁边

在 amsart 的目录中将页码放在章节标题旁边

目录中的页码通常位于标题的右侧很远的地方。由于我们很少从上到下查看目录,而经常从左到右查看,因此将页码放在标题旁边可能会更好。在 amsart 类中实现此目的的简单方法是什么?

不同目录样式的示例

\documentclass{amsart}
\usepackage{blindtext}
\usepackage{enumitem}
\title{}
\begin{document}
\maketitle
\tableofcontents
\begin{center}
\textsc{Contents} \\[6pt]
\begin{minipage}{7cm}
\begin{enumerate}[label=\arabic*.]
\item My childhood theorems, 1
\item Theorems from my adolescence, 2
\item Undergraduate theorems, 3 
\item Graduate theorems and my thesis, 4
\end{enumerate}
\end{minipage}
\end{center}
\section{My childhood theorems} \blindtext[5]
\section{Theorems from my adolescence} \blindtext[5]
\section{Undergraduate theorems} \blindtext[5]
\section{Graduate theorems and my thesis} \blindtext[5]
\end{document}

我尝试了以下操作:

\begin{center}
\begin{minipage}{8cm}
\begingroup
\def\hfil{,\relax}
\tableofcontents
\endgroup
\end{minipage}
\end{center}

而不是 \tableofcontents。这是不是个坏主意?

答案1

这主意不错。Bringhurst 说我们不必把页码加起来,那么为什么它们要放在远离标题的栏中呢?

您可以修改 ; 的工作方式\@tocline,以使目录居中,假设它适合一页,您可以使用varwidth

\documentclass{amsart}
\usepackage{varwidth}
\usepackage{blindtext}

\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
    ,~#7\par
%    \hfil\hbox to\@pnumwidth{\@tocpagenum{#7}}\par
%    \nobreak
    \endgroup
  \fi}
\makeatother


\begin{document}
\title{Whatever}
\maketitle

\begin{center}
\begin{varwidth}{\textwidth}
\tableofcontents
\end{varwidth}
\end{center}

\section{My childhood theorems} 
\subsection{Whatever}
\blindtext[5]
\section{Theorems from my adolescence} \blindtext[5]
\section{Undergraduate theorems} \blindtext[5]
\section{Graduate theorems and my thesis} \blindtext[5]
\end{document}

我添加了一个小节只是为了展示它的输出。

在此处输入图片描述

相关内容