我找到了关于回忆录课程的问题的答案(回忆录课程:关闭章节编号但仍保留页眉),但我无法让它适用于书籍。
基本上,我想抑制章节的编号,但我仍然希望能够让我的章节名称出现在标题中。
下面的代码在第 2 部分运行良好,但是,在第 1 部分,我抑制了编号,也丢失了标题。
\documentclass[a4paper]{book}
\usepackage{fancyhdr,blindtext}
\pagestyle{fancy}
\fancyfoot{}
\fancyhead[RO,LE]{\thepage}
\fancyhead[LO]{\slshape \leftmark}
\fancyhead[RE]{\slshape \rightmark}
\usepackage{blindtext}
\begin{document}
% Global font
\renewcommand{\rmdefault}{ppl}
\fontencoding{T1}
\fontfamily{ppl}
\fontsize{14}{18}
\selectfont
% Start the chapters here:
\chapter{Preface}
\section*{Section 1}
\blindtext
\blindtext
\blindtext
\blindtext
\blindtext
\section{Section 2}
\blindtext
\blindtext
\blindtext
\blindtext
\blindtext
\end{document}
答案1
有了这个包,一切都变得简单了titlesec
。
加载为
\usepackage[pagestyles]{titlesec}
而不是加载fancyhdr
。
然后,为了让你的部分没有打印数字,定义
\titleformat{\section}{\normalfont\Large\bfseries}{}{0em}{}
并得到你想要的标题,
\newpagestyle{fancy}{
\setheadrule{0.4pt}
\sethead[\thepage][][\textsl{\MakeUppercase{\sectiontitle}}]% even
{\textsl{\MakeUppercase{\chaptername\ \thechapter. \ \chaptertitle}}}{}{\thepage}% odd
}
\pagestyle{fancy}
梅威瑟:
\documentclass[a4paper]{book}
\usepackage{blindtext}
\usepackage[pagestyles]{titlesec}
\titleformat{\section}{\normalfont\Large\bfseries}{}{0em}{}
\newpagestyle{fancy}{
\setheadrule{0.4pt}
\sethead[\thepage][][\textsl{\MakeUppercase{\sectiontitle}}]% even
{\textsl{\MakeUppercase{\chaptername\ \thechapter. \ \chaptertitle}}}{}{\thepage}% odd
}
\pagestyle{fancy}
\begin{document}
% Global font
\renewcommand{\rmdefault}{ppl}
\fontencoding{T1}
\fontfamily{ppl}
\fontsize{14}{18}
\selectfont
% Start the chapters here:
\chapter{Preface}
\section{Section 1}
\blindtext
\blindtext
\section{Section 2}
\blindtext
\blindtext
\blindtext
\blindtext
\blindtext
\end{document}
输出:
答案2
您可以定义一个新命令
\newcommand\mysection[1]{%
\section*{#1}%
\markright{\MakeUppercase{#1}}% for the header
}
代码:
\documentclass[a4paper]{book}
\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyfoot{}
\fancyhead[RO,LE]{\thepage}
\fancyhead[LO]{\slshape \leftmark}
\fancyhead[RE]{\slshape \rightmark}
\newcommand\mysection[1]{%
\section*{#1}%
\markright{\MakeUppercase{#1}}% for the header
}
\usepackage{blindtext}
\begin{document}
\chapter{Preface}
\mysection{Section 1}
\Blindtext[10]
\section{Section 2}
\Blindtext[10]
\end{document}
或者你也可以使用KOMA 脚本类scrbook
。有一个命令\addsec
可以获取出现在标题和目录中的未编号部分。
\documentclass[11pt,headsepline,chapterprefix]{scrbook}
\usepackage[pagestyleset=standard]{scrlayer-scrpage}
\clearpairofpagestyles
\ohead{\pagemark}
\cfoot[\pagemark]{}
\lohead{\leftmark}
\rehead{\rightmark}
\usepackage{blindtext}
\begin{document}
\chapter{Preface}
\addsec{Section 1}
\Blindtext[10]
\addsec{Section 2}
\Blindtext[10]
\end{document}
或者你可以简单使用
\setcounter{secnumdepth}{0}
如果仅对部分和章节进行编号就好了。
\documentclass[a4paper]{book}
\setcounter{secnumdepth}{0}
\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyfoot{}
\fancyhead[RO,LE]{\thepage}
\fancyhead[LO]{\slshape \leftmark}
\fancyhead[RE]{\slshape \rightmark}
\usepackage{blindtext}
\begin{document}
\tableofcontents
\chapter{Preface}
\section{Section 1}
\Blindtext[10]
\section{Section 2}
\Blindtext[10]
\end{document}