不使用 fancyhdr 自定义偶数页和奇数页的页眉

不使用 fancyhdr 自定义偶数页和奇数页的页眉

我在用硕士博士论文用于撰写我的论文。其默认设置为:

  • 在偶数页上:外页眉有页码,内页眉有章节号
  • 在奇数页上:外页眉有页码,内页眉有节码

我的大学要求是:

  • 在偶数页上:外页眉应包含章节编号,内页眉应包含论文标题
  • 在奇数页上:外页眉应包含大学名称,内页眉应包含章节编号

我成功地将大学名称放在了页面标题上。但是,我无法做出所需的布局。我对 的 277-295 行做了一些工作MastersDoctoralThesis.cls。我注释了一些原始代码。

\RequirePackage[markcase=used]{scrlayer-scrpage}
\providepairofpagestyles{thesisSimple}{%
    \clearpairofpagestyles%
%   \automark[chapter]{chapter}
%   \ihead{\headmark}% Inner header
%   \ohead[\pagemark]{\pagemark}% Outer header
    \automark[chapter]{chapter}
    \ohead{Jiangsu University Master's Degree Thesis}
    \ihead{\headmark}% Inner header
}
\ifoot{}% Inner footer
\ofoot{}% Outer footer
\pagestyle{thesisSimple}
%\pagestyle{scrheadings}
\providepairofpagestyles[thesisSimple]{thesis}{%
    \automark*[section]{}
    \ofoot[\pagemark]{\pagemark}
}

笔记: 不知何故fancyhdr不受(第 302 行)支持MastersDoctoralThesis.cls。也许我们需要调整scrlayer-scrpage

答案1

不建议编辑类文件。更改文档前言中的设置:

\pagestyle{thesis}% defined by the class using package scrlayer-scrpage
\clearpairofpagestyles
\lehead{\ttitle}
\rehead{\rightmark}
\lohead{\leftmark}
\rohead{\univname}
\ofoot*{\pagemark}% or should there be no page number at all?

例子:

\documentclass[english,headsepline]{MastersDoctoralThesis}[2017/08/27]% v1.6 LaTeXTemplates.com
\usepackage{fontspec}
\usepackage{blindtext}% only for dummy text

\pagestyle{thesis}% defined by the class using package scrlayer-scrpage
\clearpairofpagestyles
\lehead{\ttitle}
\rehead{\rightmark}
\lohead{\leftmark}
\rohead{\univname}
\ofoot*{\pagemark}% or should there be no page number at all?

\thesistitle{Thesis Title}
\university{\href{http://www.university.com}{University Name}}

\begin{document}
\frontmatter
\pagestyle{plain}
\tableofcontents
\mainmatter
\pagestyle{thesis}
\Blinddocument\Blinddocument
\Blinddocument\Blinddocument
\appendix
\Blinddocument\Blinddocument
\end{document}

在此处输入图片描述


更新

如果内页眉中只应有“章节<章节号>”和“节<节号>”,则可以在选择页面样式之前在序言中添加以下代码thesis

\providecaptionname{english}{\Sectionname}{Section}
\makeatletter
\AddToLayerPageStyleOptions{thesis}{onselect={%
  \renewcommand*{\chaptermark}[1]{\markboth{\chaptermarkformat}{}}%
  \renewcommand*{\sectionmark}[1]{\markright{\sectionmarkformat}}%
  \renewcommand*\chaptermarkformat{\@chapapp~\thechapter}%
  \renewcommand*\sectionmarkformat{\Sectionname~\thesection}%
}}
\makeatother

例子:

\documentclass[english,headsepline]{MastersDoctoralThesis}[2017/08/27]% v1.6 LaTeXTemplates.com
\usepackage{fontspec}
\usepackage{blindtext}% only for dummy text

\providecaptionname{english}{\Sectionname}{Section}
\makeatletter
\AddToLayerPageStyleOptions{thesis}{onselect={%
  \renewcommand*{\chaptermark}[1]{\markboth{\chaptermarkformat}{}}%
  \renewcommand*{\sectionmark}[1]{\markright{\sectionmarkformat}}%
  \renewcommand*\chaptermarkformat{\@chapapp~\thechapter}%
  \renewcommand*\sectionmarkformat{\Sectionname~\thesection}%
}}
\makeatother

\pagestyle{thesis}
\clearpairofpagestyles
\lehead{\ttitle}
\rehead{\rightmark}
\lohead{\leftmark}
\rohead{\univname}
\ofoot*{\pagemark}

\thesistitle{Thesis Title}
\university{\href{http://www.university.com}{University Name}}

\begin{document}
\frontmatter
\pagestyle{plain}
\tableofcontents
\mainmatter
\pagestyle{thesis}
\Blinddocument\Blinddocument
\Blinddocument\Blinddocument
\appendix
\Blinddocument\Blinddocument
\end{document}

在此处输入图片描述

答案2

以下是如何创建页面样式 (myheadings) 的示例。我使用了 scrbook 而不是您的论文,但它应该仍然有效。

我添加了单词章节部分\arabic{section}代替\thesection。应该注意的是\chaptermark被 调用\chapter并传递章节标题,而\sectionmark被 调用\section并传递节标题(我忽略了)。这样,如果一页中有多个节,则使用第一节而不是最后一节。

\documentclass{scrbook}

\makeatletter
\def\ps@myheadings{% create myheadings pagestyle
    \def\@oddfoot{\hfil\thepage\hfil}%
    \def\@evenfoot{\hfil\thepage\hfil}%
    \def\@evenhead{\slshape\rightmark\hfil\@title}%
    \def\@oddhead{\slshape Universe City University\hfil\leftmark}%
    \let\@mkboth\@gobbletwo% disable
    \renewcommand*{\chaptermark}[1]{\markboth{\@chapapp\ \thechapter. \ }{}}%
    \renewcommand*{\sectionmark}[1]{\markright{Section \arabic{section}. \ }}% no \sectionname defined
    }
\makeatother

\pagestyle{myheadings}
\renewcommand*{\chapterpagestyle}{myheadings}

\title{My Thesis}
\author{Me}

\usepackage{lipsum}% not part of solution

\begin{document}
\frontmatter
\maketitle
\mainmatter
\chapter{First}
\section{Test}
\lipsum[1-12]
\end{document}

相关内容