每页都有标题的目录

每页都有标题的目录

我正在使用 LaTeX 撰写博士论文,现在面临以下问题。

在目录的每一页上,都必须打印标题。例如,在目录的第一页和连续的页面上,我希望打印以下内容:

**Chapter no                Contents                     Page no**

图表目录和表格目录亦同。

我怎样才能实现这个目标?

答案1

以下最小示例使用以下规范创建report一个\tableofcontentstocloft

在此处输入图片描述

\documentclass{report}
\usepackage[paperheight=30\baselineskip]{geometry}% http://ctan.org/pkg/geometry
\usepackage{tocloft}% http://ctan.org/pkg/tocloft
\usepackage{atbegshi}% http://ctan.org/pkg/atbegshi
\makeatletter
\newcommand{\tocheader}{{%
  \bfseries% Font selection
  \hspace*{\cftchapindent}% Chapter indent
  \makebox[\cftchapnumwidth][l]{Chapter no}% Chapter number heading
  \hfill%
  \contentsname% Title heading
  \hfill%
  \makebox[\@pnumwidth][r]{Page}% Page heading
  \par\kern.5\baselineskip% After heading
  }}
\AtBeginDocument{\renewcommand{\tableofcontents}{%
  \begingroup%
  \parindent\z@\parskip\cftparskip%
  \tocheader%
  \@starttoc{toc}%
  \endgroup%
}}
\renewcommand{\cftaftertoctitle}{\par\kern.5\baselineskip\tocheader}
\newcommand{\AtBeginShipoutClear}{\gdef\AtBegShi@Hook{}}
\makeatother

\begin{document}
\AtBeginShipout{\tocheader}
\tableofcontents
\AtBeginShipoutClear

\chapter{abcd}\section{First}\section{Second}\section{Last}
\chapter{bcde}\section{First}\section{Second}\section{Last}
\chapter{cdef}\section{First}\section{Second}\section{Last}
\chapter{defg}\section{First}\section{Second}\section{Last}
\chapter{efgh}\section{First}\section{Second}\section{Last}
\chapter{fghi}\section{First}\section{Second}\section{Last}
\chapter{ghji}\section{First}\section{Second}\section{Last}
\chapter{hjik}\section{First}\section{Second}\section{Last}
\chapter{jikl}\section{First}\section{Second}\section{Last}
\chapter{iklm}\section{First}\section{Second}\section{Last}
\chapter{klmn}\section{First}\section{Second}\section{Last}
\chapter{lmno}\section{First}\section{Second}\section{Last}
\chapter{mnop}\section{First}\section{Second}\section{Last}
\chapter{nopq}\section{First}\section{Second}\section{Last}
\chapter{opqr}\section{First}\section{Second}\section{Last}
\chapter{pqrs}\section{First}\section{Second}\section{Last}
\chapter{qrst}\section{First}\section{Second}\section{Last}
\chapter{rstu}\section{First}\section{Second}\section{Last}
\chapter{stuv}\section{First}\section{Second}\section{Last}
\chapter{tuvw}\section{First}\section{Second}\section{Last}
\chapter{uvwx}\section{First}\section{Second}\section{Last}
\chapter{vwxy}\section{First}\section{Second}\section{Last}
\chapter{wxyz}\section{First}\section{Second}\section{Last}
\end{document}

\AtBeginShipout{\tocheader}\tocheader将(Chapter no...Contents...Page构造)添加到每一页,而\AtBeginShipoutClear将其从后续页面中删除。\tocheader根据以下提供的间距构造其内容tocloft:缩进\cftchapindent,后跟章节号(宽度为\cftchapnumwidth),居中标题和宽度为的页码\@pnumwidth。也可以使用以下方式以稍微手动的方式执行此操作:afterpage(看在目录中的页码上方添加“页面”)。

\listoffigures对和 也可以执行相同的操作,尽管将其添加到未列出任何章节的目录中\listoftables会很奇怪。Chapter no

答案2

以下是使用fancyhdr包用于为 ToC 定义页面样式(可以为 LoF 和 LoT 定义类似的样式):

\documentclass{book}
\usepackage[paperwidth=15cm,paperheight=14cm]{geometry}% just for the example
\usepackage{fancyhdr}

% style for the ToC
\fancypagestyle{liststyle}
{
\fancyhf{}
\renewcommand\headrulewidth{0pt}
\fancyhead[L]{\bfseries Chapter No}
\fancyhead[C]{\bfseries\contentsname}
\fancyhead[R]{\bfseries Page No}
}

% style for regular pages
\fancypagestyle{regularstyle}
{
\fancyhf{}
\renewcommand\headrulewidth{0pt}
\fancyhead[L]{}
\fancyhead[C]{}
\fancyhead[R]{\thepage}
}

\makeatletter
\renewcommand\tableofcontents{%
    \if@twocolumn
      \@restonecoltrue\onecolumn
    \else
      \@restonecolfalse
    \fi
    \pagestyle{liststyle}
    \@starttoc{toc}%
    \if@restonecol\twocolumn\fi
    }
\makeatother

\begin{document}

\tableofcontents
\clearpage
\pagestyle{regularstyle}

\chapter{Test}\section{Test}\section{Test}
\chapter{Test}\section{Test}\section{Test}
\chapter{Test}\section{Test}\section{Test}
\chapter{Test}\section{Test}\section{Test}
\chapter{Test}\section{Test}\section{Test}
\chapter{Test}\section{Test}\section{Test}
\chapter{Test}\section{Test}\section{Test}
\chapter{Test}\section{Test}\section{Test}
\chapter{Test}\section{Test}\section{Test}
\chapter{Test}\section{Test}\section{Test}
\chapter{Test}\section{Test}\section{Test}
\chapter{Test}\section{Test}\section{Test}
\chapter{Test}\section{Test}\section{Test}
\chapter{Test}\section{Test}\section{Test}
\chapter{Test}\section{Test}\section{Test}

\end{document}

在此处输入图片描述

包装中paperwidth所选择的尺寸仅仅是为了示例中的方便,与解决方案无关。paperheightgeometry

相关内容