不使用 fancyhdr 更改页码的位置(底部、外部)

不使用 fancyhdr 更改页码的位置(底部、外部)

由于冲突,我无法使用 fancyhdr。有一个类似的问题,但答案指的是回忆录类(如何在不使用 fancyhdr 的情况下更改所有页面(包括章节页面)的页码位置?)。我正在使用 octavo 类,因此它不适用。就我而言,我不需要在所有页面上都添加页码,只需更改位置,octavo 所做的其余工作都可以。有没有 tex 方式可以做到这一点?

\documentclass[12pt]{octavo}
\usepackage[
paperwidth=160mm, paperheight=240mm,
textheight=18cm,
textwidth=11cm,
inner=2cm]
    {geometry}
    \usepackage{lipsum}
    
    \begin{document}
    
    \lipsum[1-5]
    
        \end{document}

答案1

您可以定义自己的页面样式。代码大部分是从页面样式的定义plain(或者\ps@plain更准确地说)中复制而来source2e,并进行了少量修改。

\documentclass[12pt]{octavo}
\usepackage[
paperwidth=160mm, paperheight=240mm,
textheight=18cm,
textwidth=11cm,
inner=2cm]
    {geometry}
    \usepackage{lipsum}
    
\makeatletter
\newcommand*\ps@mystyle{%
  \let\@mkboth\@gobbletwo
  \let\@oddhead\@empty
  \def\@oddfoot{%
    \reset@font
    \hfil
    \thepage
  }
  \let\@evenhead\@empty
  \def\@evenfoot{%
    \reset@font
    \thepage
    \hfil
  }
}
\makeatother
\pagestyle{mystyle}
    
\begin{document}
    
    \lipsum[1]\marginpar{Hello}
    
\end{document}

请注意,章节(也可能是其他对象)强制使用普通样式,因此如果您想在章节页面中使用这种样式,您可以重新定义普通样式,而不是定义自己的样式:

\documentclass[12pt]{octavo}
\usepackage[
paperwidth=160mm, paperheight=240mm,
textheight=18cm,
textwidth=11cm,
inner=2cm]
    {geometry}
    \usepackage{lipsum}
    
\makeatletter
\renewcommand*\ps@plain{%
  \let\@mkboth\@gobbletwo
  \let\@oddhead\@empty
  \def\@oddfoot{%
    \reset@font
    \hfil
    \thepage
  }
  \let\@evenhead\@empty
  \def\@evenfoot{%
    \reset@font
    \thepage
    \hfil
  }
}
\makeatother
\pagestyle{plain}
    
\begin{document}
    \chapter{Chapter}
    \lipsum[1]
    
\end{document}

或者你可以重新定义\chapter...

相关内容