我想要实现的是fancyhdr
将Appendix
或放置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
从附录开始直到页面改变之后,条件都将为真。