我正在使用 erdc(覆盖 mathgifg 字体的修改版本)。我想更改报告的标题,以便它在内侧显示报告编号,在外侧显示章节标题,在外侧页脚显示页码。
以下是我尝试的简短示例代码(见下文)。但是,我遇到了一些问题:
- \rightmark 不起作用,它什么也没打印。甚至在 \mainmatter 之外也是如此,正如 fancyhdr 手册所建议的那样。
- 如果我包含 \reportnum,我会得到很多错误。在此示例中,该语句被注释掉。
我错过了什么?请提供你的建议。
\documentclass{erdcx}
\usepackage[T1]{fontenc}
\usepackage{mathptmx}
\usepackage{bera}
\usepackage{fancyhdr}
\usepackage{blindtext}
%%% FORMAT OF HEADING
\pagestyle{fancy}
\fancyhf{}
% \fancyhead[RE,LO]{\textsf{{\footnotesize\reportnum}}} %inner header
\fancyhead[LE,RO]{\textsf{{\footnotesize\rightmark}}} %outter header
\fancyfoot[LE,RO]{\textsf{{\footnotesize\thepage}}} %outter footer
\begin{document}
% \mainmatter
\chapter{Primo}
\thispagestyle{plain}
\Blindtext
\chapter{Secondo}
\thispagestyle{plain}
\blindtext
\blindmathpaper
\chapter{Terzo}
\Blindtext
\end{document}
我也尝试将以下内容添加到序言中,但没有成功。
\renewcommand{\chaptermark}[1]{\markboth{\MakeUppercase{#1}}{}}
答案1
该类erdc
定义\@chapter
不是发射\chaptermark
,因此没有发现任何标记。
\def\@chapter[#1]#2{%
\if@frontmatter
\addcontentsline{toc}{chapter}{#1}%
\@makechapterhead{#2}%
\else
\refstepcounter{chapter}%
\typeout{\@chapapp\space\thechapter.}%
\if@appendix
\addcontentsline{toc}{chapter}%
{\@chapapp\space\thechapter: #1}%
\@makechapterhead{\@chapapp\space\thechapter: #2}%
\else
\addcontentsline{toc}{chapter}%
{\protect\numberline{\thechapter}#1}%
\@makechapterhead{\makebox[35\p@]{\thechapter\hfill}#2}%
\fi
\fi
\@afterheading}
这是它的补丁。
% don't load mathgifg (does not exist)
\expandafter\def\csname [email protected]\endcsname{}
%%%
\documentclass{erdc}
\usepackage[T1]{fontenc}
\usepackage[latin]{babel} % latin just to avoid overfull boxes
\usepackage{bera}
\usepackage{etoolbox}
%\usepackage{fancyhdr}% not needed
\usepackage{blindtext}
%%% FORMAT OF HEADING
%\pagestyle{fancy} % not needed
\fancyhf{}
\makeatletter
\fancyhead[RE,LO]{\textsf{{\footnotesize\@reportnum}}} %inner header
\makeatother
\fancyhead[LE,RO]{\textsf{{\footnotesize\leftmark}}} %outer header
\fancyfoot[LE,RO]{\textsf{{\footnotesize\thepage}}} %outer footer
\setlength{\headheight}{16pt}
% patch \@chapter to emit \chaptermark
\makeatletter
\patchcmd{\@chapter}{\fi\fi}{\fi\chaptermark{#1}\fi}{}{}
\makeatother
\begin{document}
\mainmatter
\chapter{Primo}
\thispagestyle{plain}
\Blindtext
\chapter{Secondo}
\thispagestyle{plain}
\blindtext
\blindmathpaper
\chapter{Terzo}
\thispagestyle{plain}
\Blindtext
\end{document}