![为我的报告定制 Fancy Header fancyhdr 包](https://linux22.com/image/372798/%E4%B8%BA%E6%88%91%E7%9A%84%E6%8A%A5%E5%91%8A%E5%AE%9A%E5%88%B6%20Fancy%20Header%20fancyhdr%20%E5%8C%85.png)
我是 LATEX 新手,正在写一篇论文报告,我想在文档标题中添加一些关于章节编号及其名称的信息。所以我正在使用fancyhdr
包。我想fancyhdr
显示第1章在标题的左侧,它的名字如下介绍在页眉右侧。请帮我看看如何才能做到这一点?请确保我不想将这两段文字“第 1 章和简介”加粗。
我的代码是:
% Customising headers - fancyhdr.pdf
\usepackage{fancyhdr}
\pagestyle{fancy}
\renewcommand{\chaptermark}[1]{%
\markboth{#1}{}}
\rhead{}
\lhead{\nouppercase{\textsc{\leftmark}}}
\makeatletter
\renewcommand{\chaptermark}[1]{\markboth{\textsc{\@chapapp}\ \thechapter:\
#1}{}}
\makeatother
答案1
所以你想使用 fancyhdr。正如他们所写的docs
:用于\lhead{TEXT}
在页眉的左侧部分书写。l
如果您想要在其他地方书写,只需将其切换出来:即l
左侧、c
中间和r
右侧。页脚也类似:\cfoot{TEXT}
将文本放在页脚中央。
正如您在代码中尝试做的那样:要获取章节名称,您可以重新定义在调用\chaptermark
时设置的。然后使用以下方法检索它(此处)\chapter
\leftmark
仅包含\@chapapp
文本“章节”并\thechapter
具有章节编号。但您只希望它包含章节名称,这是 调用#1
的参数\chapter
。因此,您的 的新定义\chaptermark
应该是:
\renewcommand{\chaptermark}[1]{\markboth{#1}{}}
现在\leftmarks
仅包含章节名称。
像这样:
\documentclass{report}
\usepackage{fancyhdr}
\pagestyle{fancy}
% Set "Chapter" and chapter _number_ on left header
\lhead{Chapter \thechapter}
% Set chapter _name_ on right side of header
\rhead{\nouppercase{\textsc{\leftmark}}}
% Set what is to be set in \leftmark
\renewcommand{\chaptermark}[1]{\markboth{#1}{}}
\begin{document}
\chapter{Introduction}
\clearpage
Some report goes here
\end{document}
编辑:正如@Johannes_B 指出的那样:使用\chaptermark
是一种更清晰的方法。
答案2
以下是另一个建议:
\documentclass{report}
% Customising headers - fancyhdr.pdf
\usepackage{fancyhdr}
\pagestyle{fancy}
\renewcommand\sectionmark[1]{}
\makeatletter
\renewcommand{\chaptermark}[1]
{\markboth{\ifnum\value{chapter}>0\@chapapp\ \thechapter\fi\hfill#1}{}}
\makeatother
\fancyhf{}
\fancyhead[R]{\nouppercase{\leftmark}}
\fancyfoot[C]{\thepage}
\usepackage{blindtext}% only for dummy text
\begin{document}
\tableofcontents
\Blinddocument\Blinddocument\Blinddocument
\Blinddocument\Blinddocument\Blinddocument
\end{document}
或者使用 KOMA-Script 类:
\documentclass{scrreprt}
% Customising headers - fancyhdr.pdf
\usepackage{fancyhdr}
\pagestyle{fancy}
\renewcommand{\chaptermark}[1]{\markboth{\ifnumbered{chapter}{\chapapp\ \thechapter}{}\hfill#1}{}}
\fancyhf{}
\fancyhead[R]{\nouppercase{\leftmark}}
\fancyfoot[C]{\thepage}
\usepackage{blindtext}% only for dummy text
\begin{document}
\tableofcontents
\addchap{Unnumbered Chapter}
\Blindtext[10]
\Blinddocument\Blinddocument\Blinddocument
\Blinddocument\Blinddocument\Blinddocument
\end{document}
但建议使用scrlayer-scrpage
:
\documentclass{scrreprt}
%Customising headers
\usepackage[automark,headsepline]{scrlayer-scrpage}
\automark{chapter}
\renewcommand\chaptermarkformat{\chapapp\ \thechapter\hfill}
\clearpairofpagestyles
\ohead{\headmark}
\cfoot*{\pagemark}
\setkomafont{pageheadfoot}{\normalfont}
\usepackage{blindtext}% only for dummy text
\begin{document}
\tableofcontents
\addchap{Unnumbered Chapter}
\Blindtext[10]
\Blinddocument\Blinddocument\Blinddocument
\Blinddocument\Blinddocument\Blinddocument
\end{document}