我在 Lyx 2.1 book
(标准类)中有一个 400 页的文档,使用默认设置。\chapter
标题在页眉中全部大写,但\chapter*
标题(我手动添加到目录中并使用 包括标题\markboth
)显示为普通斜体小写。有没有简单的方法可以使它们相同?
我确实知道这个fancyhdr
(或类似的东西)软件包就是为此目的而发明的,但这本书明天就要印刷了(大型商业出版商),我不能冒险做任何重大更改,因为它已经校对过了。我想简单地更改几个需要更改的标题,而不进行任何重新格式化。
提前谢谢了。
答案1
这是一个解决方案,它将添加运行标题到全部章节未编号,因此请小心处理。它使用包etoolbox
来添加markboth
您手动执行的命令。 小心,此代码注定会失败。最好手动设置标题。
需要指出的是,将某些内容大写的正确方法是使用\MakeUppercase{<content>}
。
顺便说一句:KOMA 级有自己的命令来处理这类事情。我曾经在正确使用 hyperref 和 addcontentsline还有其他绊线可能会被击中。
\documentclass{book}
\usepackage{blindtext}
\usepackage{etoolbox}
\makeatletter
%The following adds a running header for ALL unnumbered chapters
\pretocmd{\@schapter}{%pre
\markboth{\MakeUppercase{#1}}{}%
\typeout{Are your sure you want to mark a head here?}%
}{\typeout{Succes}
}{%Fail
\typeout{FAIL}}
\makeatother
\begin{document}
\tableofcontents
\chapter{a numbered chapter}
\blindtext[10]
\section{a section}
\blindtext[10]
\chapter*{an unnumbered chapter}
\addcontentsline{toc}{chapter}{a unnumbered chapter}
\blindtext[10]
\section{a section}
\blindtext[10]
\chapter*{another unnumbered chapter}
\addcontentsline{toc}{chapter}{another unnumbered chapter}
\blindtext[10]
\end{document}
答案2
请参阅 Piet van Oostrum 编写的 pdf 文档“Latex 中的页面布局”。他说,如果你想让章节标题大写,你必须使用以下命令
\renewcommand{\chaptermark}[1]{%
\markboth{\MakeUppercase{%
\chaptername\ \thechapter.%
\ #1}}{}}
在序言中\pagestyle{fancy}
默认:
标题文本全部大写book.cls
根据 Leslie Lamport 的书籍风格,您必须在序言中使用以下内容
\renewcommand{\chaptermark}[1]{\markboth{#1}{}}
,以消除章节编号和大写字母。将其添加为注释并添加上述命令,以大写字母显示章节标题。a