LaTeX 书中的页眉是错误的

LaTeX 书中的页眉是错误的

我有一本书,有 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 类,则可能仍然会出现此问题。请告诉您的发布商修复它。

相关内容