我正在尝试更改页眉和页脚。我正在使用这个:
\documentclass[12pt,b5paper]{book}
\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhf{}
\fancyhead[LE]{\fontsize{12}{12}\selectfont\nouppercase\thepage}
\fancyhead[RE]{\fontsize{9}{12}\selectfont\nouppercase\leftmark}
\fancyhead[RO]{\fontsize{12}{12}\selectfont\nouppercase\thepage}
\fancyhead[LO]{\fontsize{9}{12}\selectfont\nouppercase\rightmark}
\fancyfoot[CE,CO]{}
\fancyfoot[LE,RO]{}
\renewcommand{\chaptermark}[1]{\markboth{\chaptername \ \thechapter \ -\ #1}{}}
\renewcommand{\sectionmark}[1]{\markright{\thesection \ -\ #1}{}}
我从哪里得到这个:
但我希望标题(第 4 章 - 四配位铁卡宾)为斜体。
我怎样才能做到这一点?
提前致谢。
答案1
为什么不使用\small
或 \footnotesize
作为字体大小(取决于文档类中的字体大小选项)?
这是一个可能的代码:
\documentclass[12pt,b5paper]{book}
\usepackage[utf8]{inputenc}
\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhf{}
\fancyhead[LE]{\thepage}
\fancyhead[RE]{\fontsize{9}{12}\selectfont\itshape\nouppercase{\leftmark}}
\fancyhead[RO]{\thepage}
\fancyhead[LO]{\fontsize{9}{12}\selectfont\itshape\nouppercase{\rightmark}}
\fancyfoot[CE,CO]{}
\fancyfoot[LE,RO]{}
\renewcommand{\chaptermark}[1]{\markboth{\chaptername \ \thechapter \ –\ #1}{}}
\renewcommand{\sectionmark}[1]{\markright{\thesection \ –\ #1}{}}
\begin{document}
\setcounter{chapter}{3}
\chapter{Tetracoordinate Iron Carbenes}
\newpage
\setcounter{section}{1}
\section {The reference system}
\end{document}
答案2
最好使用更高级的命令,例如\footnotesize
而不是\fontsize
。
还要注意,这\nouppercase
是一个带有参数的命令,因此正确的语法是\nouppercase{\itshape\leftmark}
,但\itshape
最好在外面进行声明\leftmark
。
\documentclass[a4paper,12pt]{book}
\usepackage{fancyhdr}
\usepackage{lipsum} % just for testing
\pagestyle{fancy}
\fancyhf{}
\fancyhead[LE,RO]{\thepage}
\fancyhead[RE]{\footnotesize\itshape\nouppercase{\leftmark}}
\fancyhead[LO]{\footnotesize\itshape\nouppercase{\rightmark}}
\setlength{\headheight}{14.5pt} % as requested by fancyhdf
\renewcommand{\chaptermark}[1]{\markboth{\chaptername \ \thechapter \ -\ #1}{}}
\renewcommand{\sectionmark}[1]{\markright{\thesection \ -\ #1}{}}
\begin{document}
\tableofcontents
\chapter{Tetracoordinate Iron Carbenes}
\section{Some title}
\lipsum[1-20]
\end{document}
如果您使用小于 12pt 的尺寸作为文档类选项,请注释掉该\setlength
行并检查日志文件以了解要分配的适当长度\headheight
。
实际上,由于您重新定义了\chaptermark
和\sectionmark
,\nouppercase
因此不需要;但是,\tableofcontents
问题\MakeUppercase
(和、同样、\listoffigures
和\listoftables
),因此最好还是添加它。
答案3
这是一个没有 fancyhdr 的解决方案。您可以重新定义:
\ps@headings
只需将 \MakeUppercase 替换为 \itshape。(我使用 xparse 执行了此操作,这不是必需的,您只需从 book.cls 复制定义并按照说明替换 \MakeUppercase 即可。
与 \tableofcontents 相同。
梅威瑟:
\documentclass{book}
\usepackage{xparse}
\usepackage{blindtext}
\makeatletter
\DeclareDocumentCommand\ps@headings{}%
{\let\@oddfoot\@empty\let\@evenfoot\@empty%
\DeclareDocumentCommand\@evenhead{}{\thepage\hfil\leftmark}%
\DeclareDocumentCommand\@oddhead{}{{\rightmark}\hfil\thepage}%
\let\@mkboth\markboth%
\DeclareDocumentCommand\chaptermark{m}%
{\markboth{\itshape% !!!!
{\ifnum \c@secnumdepth >\m@ne%
\@chapapp\ \thechapter. \ %
\fi%
##1}}{}}%
\DeclareDocumentCommand\sectionmark{m}%
{\markright{\itshape% !!!!
{\ifnum \c@secnumdepth >\z@%
\thesection. \ %
\fi%
##1}}}}
\pagestyle{headings}% Important to load the changes
\renewcommand\tableofcontents{%
\if@twocolumn
\@restonecoltrue\onecolumn
\else
\@restonecolfalse
\fi
\chapter*{\contentsname
\@mkboth{%
\itshape\contentsname}{\itshape\contentsname}}% !!!!
\@starttoc{toc}%
\if@restonecol\twocolumn\fi
}
\makeatother
\begin{document}
\tableofcontents
\Blinddocument
\end{document}