使用“documentclass{book}”时,如何保留页脚中页码的位置?

使用“documentclass{book}”时,如何保留页脚中页码的位置?

这是我从一开始的文档:

\documentclass{book}
\usepackage[utf8]{inputenc}

\usepackage[a4paper, margin=1in]{geometry}

\usepackage{amsmath,amsfonts,amssymb}
\usepackage{graphicx}
\usepackage{setspace}
\usepackage{lipsum}
\usepackage{tocloft}

\usepackage{titlesec}

\begin{document}
   
    \newgeometry{top=1.75in,hmargin=1in, bottom=1in} 
    
    \pagenumbering{gobble}

下面是当我添加到文档时页面编号从页脚更改为页眉(左右交替)的部分:

\titleformat{\chapter}[display]
  {\normalfont\LARGE\bfseries}
  {\titleline{}\vspace{5pt}\titleline{}\vspace{1pt}%
  \MakeUppercase{\chaptertitlename} \thechapter}
  {1pc}
  {\titleline{}\vspace{0.5pc}}



\chapter{BIOLOGICAL STRUCTURE}

The main results of this chapter is to give 
\section{PRELIMINARIES}

我还想说,documentclass{article}当我的编号在页脚时我曾经使用过。

有人能告诉我是什么改变了页码的位置吗?我怎样才能保留documentclass{book}页脚中的页码?

答案1

这展示了如何在没有 fancyhdr 的情况下做到这一点。

\documentclass{book}
\usepackage[utf8]{inputenc}

\usepackage[a4paper, margin=1in]{geometry}

\usepackage{amsmath,amsfonts,amssymb}
\usepackage{graphicx}
\usepackage{setspace}% avoid if possible
\usepackage{lipsum}

\usepackage{tocloft}
\usepackage{titlesec}
\titleformat{\chapter}[display]
  {\normalfont\LARGE\bfseries}
  {\titleline{}\vspace{5pt}\titleline{}\vspace{1pt}%
  \MakeUppercase{\chaptertitlename} \thechapter}
  {1pc}
  {\titleline{}\vspace{0.5pc}}

\makeatletter
\def\ps@headings{%
      \def\@oddfoot{\normalfont\hfil\thepage\hfil}%
      \def\@evenfoot{\normalfont\hfil\thepage\hfil}}
      \def\@evenhead{\hfil\slshape\leftmark}%
      \def\@oddhead{{\slshape\rightmark}\hfil%
      \let\@mkboth\markboth
    \def\chaptermark##1{%
      \markboth {\MakeUppercase{%
        \ifnum \c@secnumdepth >\m@ne
          \if@mainmatter
            \@chapapp\ \thechapter. \ %
          \fi
        \fi
        ##1}}{}}%
    \def\sectionmark##1{%
      \markright {\MakeUppercase{%
        \ifnum \c@secnumdepth >\z@
          \thesection. \ %
        \fi
        ##1}}}}
\makeatother
\pagestyle{headings}% apply new definitions
  
\usepackage{lipsum}% random text

\begin{document}
\frontmatter
\begin{titlepage}
\vspace*{0.75in}% assuming one page only
Note that \verb|\maketitle| is optional.
\end{titlepage}
\tableofcontents

\mainmatter
\chapter{Title}
\lipsum[1-20]

\end{document}

答案2

这显示了如何使用fancyhdr。 (有时使用它会令人沮丧,所以要小心!)。您可以使用选项LR(左侧和右侧)以及OE(奇数页和偶数页)来控制页码在奇数页和偶数页的显示方式。请记住,通常奇数页在书的右侧,偶数页在书的左侧。所以选项RO, LE被传递给了fancyfoot。此外,默认情况下,章节开头的页码位于页脚的中心。要更改这一点,您必须重新定义plain页面样式。所以完整的代码是:

\documentclass[10pt, twoside]{book}

%\usepackage[utf8]{inputenc} % Usually you don't need it. So I commented this out.

\usepackage[a4paper, margin=1in]{geometry}

\usepackage{amsmath,amsfonts,amssymb}
\usepackage{graphicx}
\usepackage{setspace} % John Kormylo suggests you avoid this if possible.
\usepackage{lipsum}
\usepackage[titles]{tocloft}

\usepackage{titlesec}
 \titleformat{\chapter}[display]
  {\normalfont\LARGE\bfseries}
  {\titleline{}\vspace{5pt}\titleline{}\vspace{1pt}%
  \MakeUppercase{\chaptertitlename} \thechapter}
  {1pc}
  {\titleline{}\vspace{0.5pc}}
  
\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhead{}
\fancyfoot{}
\fancyfoot[RE, LO]{\thepage}

\begin{document}

\frontmatter

\chapter{Preface}
\lipsum[1-2]

\tableofcontents

\mainmatter
\chapter{Chap 1}
\section{Sec 1}
\lipsum[3-30]
\chapter{Chap 1}
\section{Sec 1}
\lipsum[4]

\backmatter
\lipsum[7-8]
\end{document}

章节开头的页码将在页脚的中心显示,如下所示:

章节开头

如果你想让页码像往常一样出现在任何地方,那么你可以在fancyhdr定义后添加其他命令:

\fancypagestyle{plain}{
\fancyhf{}
\fancyfoot[LE,RO]{\thepage}}

每章的接下来几页应如下所示:

下一页

最后,如果您不想在某些页面中显示页码,那么您可以使用\thispagestyle{empty}后跟\clearpage命令来结束该页面并开始另一页。

相关内容