我需要使用\chapter*
标题左侧的命令显示章节名称。这是我尝试的一个例子:
\documentclass[12pt,a4paper,oneside]{book}
\usepackage{fancyhdr}
\pagestyle{fancy}
\lhead{}
\chead{}
\rhead{\fancyplain{}{\textit{\leftmark}}}
\begin{document}
\chapter*{\centerline{Chapter Name}}
\end{document}
我怎样才能做到这一点?
答案1
尝试
\chapter*{chapter name}
\markboth{chapter name}{}
并考虑使用titlesec
包而不是用作\centerline
视觉格式化方法。
答案2
设置标题fancyhdr
通常需要更改\chaptermark
和\sectionmark
命令;您不需要后者,因为您只需要标题中的章节标题。
下面是一个示例,我在其中展示了两种方法。\chapter
中的简单命令\frontmatter
不会给出编号并正确设置标题。 如果您想要 中的未编号章节\mainmatter
,那么您可以使用显式\chaptermark
命令。
\documentclass[12pt,a4paper,oneside]{book}
\usepackage{fancyhdr}
\pagestyle{fancy}
\renewcommand{\chaptermark}[1]{\markboth{#1}{}}
\fancyhf{} % clear the headers
\fancyhead[R]{%
% We want italics
\itshape
% The chapter number only if it's greater than 0
\ifnum\value{chapter}>0 \chaptername\ \thechapter. \fi
% The chapter title
\leftmark}
\fancyfoot[C]{\thepage}
\fancypagestyle{plain}{
\renewcommand{\headrulewidth}{0pt}
\fancyhf{}
\fancyfoot[C]{\thepage}
}
\setlength{\headheight}{14.5pt}
\usepackage{kantlipsum} % for the mock text
\begin{document}
\frontmatter
\chapter{Introduction}
\kant
\mainmatter
\chapter*{Another introduction}
\chaptermark{Another introduction}
\kant
\chapter{Title}
\kant
\end{document}
请注意,如果您计划使用附录,则应修改其中一个命令:
\makeatletter
\fancyhead[R]{%
% We want italics
\itshape
% The chapter number only if it's greater than 0
\ifnum\value{chapter}>0 \@chapapp\ \thechapter. \fi
% The chapter title
\leftmark}
\makeatother
\chaptername
(不幸的是,包含或的命令\appendixname
是内部命令,因此必须采取一些技巧才能访问它。)
还请注意\setlength{\headheight}{14.5pt}
给予标题所需的空间。
为了使章节标题居中,最好使用titlesec
或sectsty
包的方法,而不是进行明确的格式化。
笔记这假设未编号的章节在\frontmatter
(实际上有任意数量)或有只有一个在的开头\mainmatter
。对于其他情况,应采取更复杂的方法。
答案3
我通常使用我写的这个函数:
\newcommand{\silentchapter}[1]{
\chapter*{#1}
\markboth{#1}{#1}
%\addcontentsline{toc}{chapter}{#1}
}
它创建一个没有编号的章节并设置标题。注释行将此章节添加到内容索引中。