![LaTeX 书中的页眉是错误的](https://linux22.com/image/235418/LaTeX%20%E4%B9%A6%E4%B8%AD%E7%9A%84%E9%A1%B5%E7%9C%89%E6%98%AF%E9%94%99%E8%AF%AF%E7%9A%84.png)
我有一本书,有 14 个章节、两个附录(每个章节和附录都在一个单独的文件中),以及一个参考书目和索引。设置如下:
Preamble
\mainmatter
include chapters
\appendix
include appendices
\backmatter
\bibliographystyle{plain}
\bibliography{mybibfile}
\small
\printindex
这样做没问题 - 但书目和索引的页眉在每个奇数页上都有最后一个附录的标题。这显然是错误的。我该如何解决这个问题?我甚至没有注意到这一点,直到校对员发现它。
我正在使用该emptypage.sty
文件来确保空白页没有页眉(这是我的出版商的要求)。
我正在使用出版商提供的课程文件;相关部分是
\newdimen\bibindent
\setlength\bibindent{1.5em}
\newenvironment{thebibliography}[1]
{\chapter*{\bibname}%
\@mkboth{\MakeUppercase\bibname}{\MakeUppercase\bibname}%
\addcontentsline{toc}{chapter}{\bibname}
\list{\@biblabel{\@arabic\c@enumiv}}%
{\settowidth\labelwidth{\@biblabel{#1}}%
\leftmargin\labelwidth
\advance\leftmargin\labelsep
\@openbib@code
\usecounter{enumiv}%
\let\p@enumiv\@empty
\renewcommand\theenumiv{\@arabic\c@enumiv}}%
\sloppy
\clubpenalty4000
\@clubpenalty \clubpenalty
\widowpenalty4000%
\sfcode`\.\@m}
{\def\@noitemerr
{\@latex@warning{Empty `thebibliography' environment}}%
\endlist}
这看上去应该可行,但实际上却不行。
答案1
这很大程度上取决于你的类文件。如果你使用标准类,book
则定义如下:
\newenvironment{thebibliography}[1]
{\chapter*{\bibname}%
\@mkboth{\MakeUppercase\bibname}{\MakeUppercase\bibname}%
:
:
如果您再次使用natbib
它,请重新定义\bibliography
命令:
\renewenvironment{thebibliography}[1]{%
\bibsection
:
:
和
\providecommand\bibsection{}
\renewcommand\bibsection{%
\chapter*{\bibname\@mkboth{\MakeUppercase{\bibname}}{\MakeUppercase{\bibname}}}%
在这两种情况下,它都会给出正确的输出,但命令\pagestyle{empty}
会轮流执行\markboth
。如果您向我们指出您的类文件,我们就可以查看。
否则重新定义\cleardoublepage
命令以插入空白页面样式。
\makeatletter
\renewcommand\cleardoublepage{%
\clearpage
\if@twoside \ifodd\c@page\else
\hbox{}\thispagestyle{empty}%
\newpage\if@twocolumn\hbox{}\newpage
\fi\fi\fi}
\makeatother
答案2
正如其他人所说,运行头取决于您使用的文档类。在 2.20 版(2004 年 8 月)之前的 ams 文档类版本中,的定义\backmatter
无法重置的值\chaptername
,该值随后保留在参考书目和索引中。那是一个错误,但已修复。
如果您的发布商提供的 documentclass 基于旧版本的 amsbook 类,则可能仍然会出现此问题。请告诉您的发布商修复它。