每页顶部打印的部分

每页顶部打印的部分

我正在使用 amsbook 文档类。我希望它在每页顶部打印章节编号。如何实现?我有哪些选项可以显示它?

编辑:这是我的序言。我打了大约六个部分,但它们并没有什么不寻常之处。

\documentclass[12pt]{amsbook}

\usepackage{etex}

\usepackage[usenames,dvipsnames]{pstricks}
\usepackage{epsfig}
\usepackage{pst-grad} % For gradients
\usepackage{pst-plot}
\usepackage{tikz}


\usepackage{amsmath,amsthm,amsfonts,amssymb,bm,tikz,pgfplots,subfig,float,sidecap,enumitem,varioref,thmtools}
\usepackage[margin=1in]{geometry}
\usepackage{setspace}
\usepackage{multicol}
\usepackage[nice]{nicefrac}
\usepackage{imakeidx}

\usepackage[hypertexnames=true]{hyperref}
\hypersetup{colorlinks,linkcolor=blue}

\pagestyle{plain}

\makeindex[name=index, title=Index of Terms, columns=2]
\makeindex[name=notation, title=Index of Notations, columns=2]

\onehalfspacing %also singlespacing and doublespacing
\setlength{\parindent}{18pt}
\setlength{\intextsep}{1cm}% plus 1pt minus 2pt}
\setlength{\textfloatsep}{1cm}% plus 1pt minus 2pt}
\setlength{\floatsep}{1cm}% plus 1pt minus 2pt}

\usepackage{enumitem}


\setcounter{secnumdepth}{2}
\numberwithin{section}{chapter}


\title{Book Title}
\author{Me}


\begin{document}


\maketitle
\pagebreak

\setcounter{secnumdepth}{-1}
\setcounter{page}{1}
\pagenumbering{roman}

\setcounter{tocdepth}{4}
\makeatletter
\def\l@subsection{\@tocline{2}{0pt}{2.5pc}{5pc}{}}
\makeatother


\tableofcontents
\pagebreak


\setcounter{secnumdepth}{2}
\pagenumbering{arabic}
\setcounter{page}{1}

\section{Book Begins}
A 
\newpage
B
\newpage
C

\end{document}

答案1

这是您的文件的改编版,它将在所有页面上将运行头设置为节名称第一部分出现后。我把页眉保留为章节标题,以处理章节中没有章节的情况,或者第一章节直到第二页之后才出现的情况。

\documentclass[12pt]{amsbook}

\usepackage{xpatch}
\usepackage{etex}

\usepackage{amssymb,bm}

\usepackage[hypertexnames=true]{hyperref}
\hypersetup{colorlinks,linkcolor=blue}

\numberwithin{section}{chapter}
\setcounter{secnumdepth}{2}

\makeatletter
\patchcmd\ps@headings
  {\def\sectionmark{\@secmark\markright\sectionrunhead\sectionname}}%
  {\def\sectionmark{\@secmark\markboth\sectionrunhead\sectionname}}%
  {}{}
\pagestyle{headings}%
\makeatother

\title{Book Title}
\author{Me}

\begin{document}

\maketitle
\pagebreak

\setcounter{secnumdepth}{-1}
\setcounter{page}{1}
\pagenumbering{roman}

\setcounter{tocdepth}{4}
\makeatletter
\def\l@subsection{\@tocline{2}{0pt}{2.5pc}{5pc}{}}
\makeatother

\tableofcontents
\pagebreak

\setcounter{secnumdepth}{2}
\pagenumbering{arabic}
\setcounter{page}{1}

\chapter{Chapter title}
xx
\newpage
xx
\newpage
\section{Book Begins}
A 
\newpage
B
\newpage
C

\end{document}

在运行标题中出现的定义在 的定义范围内\ps@headings

唯一需要的更改是针对部分,因此应用补丁(使用xpatch包机制)而不是复制和替换整个(长!)定义。完成后,有必要重置\pagestyle以使用新的标题定义。这通常在首先检查文件是否存在的代码中完成.cfg,但由于您希望更改是强制性的,并且该代码块还有其他副作用,因此只\pagestyle调用更改。

相关内容