![使用 fancyhdr 添加罗马数字章节编号](https://linux22.com/image/285463/%E4%BD%BF%E7%94%A8%20fancyhdr%20%E6%B7%BB%E5%8A%A0%E7%BD%97%E9%A9%AC%E6%95%B0%E5%AD%97%E7%AB%A0%E8%8A%82%E7%BC%96%E5%8F%B7.png)
我正在尝试使用 fancyhdr 将章节号添加到页脚。我想要做的是将罗马数字的章节号和阿拉伯数字的页码放在一起,如下所示:
VI - 8
这是我现在的代码:
\documentclass[a4paper]{book}
\usepackage{fancyhdr}
\begin{document}
\pagenumbering{Roman}
\clearpage
\pagestyle{fancy}
\cfoot{\thepage}
\renewcommand{\headrulewidth}{0pt}
\fancyhead[LE,RO]{}
\fancyhead[LO,RE]{\slshape \leftmark}
%\tableofcontents
\clearpage
\pagenumbering{arabic}
\input{Chapter_1.tex}
\input{Chapter_2.tex}
\input{Chapter_3.tex}
\input{Chapter_4.tex}
\input{Chapter_5.tex}
\input{Chapter_6.tex}
\end{document}
有人可以帮帮我吗?
先感谢您!
答案1
只需添加
\fancyfoot[C]{\Roman{chapter}\,--\,\thepage}
到您当前的设置。因为为了保持一致性,这也应该适用于每章的第一页(使用这种样式),因此还需要plain
重新定义:plain
\fancypagestyle{plain}{%
\fancyhf{}
\fancyfoot[C]{\Roman{chapter}\,--\,\thepage}
\renewcommand{\headrulewidth}{0pt}
}
完整示例:
\documentclass[a4paper]{book}
\usepackage{fancyhdr}
\usepackage{lipsum}
\pagestyle{fancy}
\fancyhf{}
\fancyhead[LE,RO]{}
\fancyhead[LO,RE]{\slshape \leftmark}
\fancyfoot[C]{\Roman{chapter}\,--\,\thepage}
\renewcommand{\headrulewidth}{0pt}
\fancypagestyle{plain}{%
\fancyhf{}
\fancyfoot[C]{\Roman{chapter}\,--\,\thepage}
\renewcommand{\headrulewidth}{0pt}
}
\begin{document}
\chapter{Test chapter one}
\lipsum[1-40]
\chapter{Test chapter two}
\lipsum[1-40]
\chapter{Test chapter three}
\lipsum[1-40]
\end{document}
不同章节中部分页脚的图片:
当然,从对文本进行编号的那一刻起,就激活这些设置。由于这特别适用于对 plain 的重新定义,因此您可以根据是否在页脚上,有条件地对页脚进行重新定义\mainmatter
:
\makeatletter
\fancypagestyle{plain}{%
\fancyhf{}
\if@mainmatter
\fancyfoot[C]{\Roman{chapter}\,--\,\thepage}
\else
\fancyfoot[C]{\thepage}
\fi
\renewcommand{\headrulewidth}{0pt}
}
\makeatother
代码:
\documentclass[a4paper]{book}
\usepackage{fancyhdr}
\usepackage{lipsum}
\pagestyle{fancy}
\fancyhf{}
\fancyhead[LE,RO]{}
\fancyhead[LO,RE]{\slshape \leftmark}
\fancyfoot[C]{\Roman{chapter}\,--\,\thepage}
\renewcommand{\headrulewidth}{0pt}
\makeatletter
\fancypagestyle{plain}{%
\fancyhf{}
\if@mainmatter
\fancyfoot[C]{\Roman{chapter}\,--\,\thepage}
\else
\fancyfoot[C]{\thepage}
\fi
\renewcommand{\headrulewidth}{0pt}
}
\makeatother
\begin{document}
\frontmatter
\tableofcontents
\mainmatter
\chapter{Test chapter one}
\lipsum[1-40]
\chapter{Test chapter two}
\lipsum[1-40]
\chapter{Test chapter three}
\lipsum[1-40]
\end{document}