在 fancyhdr 中切换参考书目和附录

在 fancyhdr 中切换参考书目和附录

我想要实现的是fancyhdrAppendix或放置Bibliography在标题中,并只有一个定义。因此,如果我在参考书目中,它应该显示Bibliography,否则应该显示Appendix

\documentclass{report}
\usepackage{fancyhdr}
\usepackage{etoolbox}

\newcommand{\backmatter}{
    \fancyhdr[C]{\ifstrequal{\leftmark}{\MakeUppercase{\bibname}}
        {\bibname}{\appendixname\ \thechapter}}

\begin{document}
   \backmatter       
   \bibliography{my.bib}
   \appendix
   \chapter{Appendix}
\end{document}

总是ifstrequal评估为假,所以总是Appendix在标题中产生。提前感谢您的帮助。

编辑:我的新解决方案如下

\documentclass{report}
\usepackage{fancyhdr}
\usepackage{etoolbox}

\preptocmd{\bibliography}{\fancyhead[C]{\bibname}}{}{}
\preptocmd{\appendix}{\fancyhead[C]{\appendixname\ \thechapter}}{}{}

\begin{document}       
   \bibliography{my.bib}
   \appendix
   \chapter{Appendix}
\end{document}

但是,当我的参考书目到达第三页时,它再次显示附录。

编辑 2:以下作品

\documentclass{report}
\usepackage{fancyhdr}
\usepackage{etoolbox}

\preptocmd{\bibliography}{\cleardoublepage \fancyhead[C]{\bibname}}{}{}
\preptocmd{\appendix}{\cleardoublepage \fancyhead[C]{\appendixname\ \thechapter}}{}{}

\begin{document}       
   \bibliography{my.bib}
   \appendix
   \chapter{Appendix}
\end{document}

答案1

主要问题是\leftmark 没有包含\MakeUppercase{\bibname},但更复杂。还有其他扩展问题。

如果你的附录是这种形式,我建议

\newif\ifbiblio
\newcommand{\backmatter}{%
  \fancyhead[C]{\ifbiblio \bibname\else\appendixname\ \thechapter\fi}%
  \bibliotrue
}
\appto\appendix{\clearpage\bibliofalse}

\backmatter从附录开始直到页面改变之后,条件都将为真。

相关内容