使用 fancyhdr 添加罗马数字章节编号

使用 fancyhdr 添加罗马数字章节编号

我正在尝试使用 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}

相关内容