Fancyhdr:如何将序言的页码从小写罗马数字更改为大写罗马数字?

Fancyhdr:如何将序言的页码从小写罗马数字更改为大写罗马数字?

我正在使用书籍类,我需要将首页的编号从小写罗马数字更改为大写罗马数字。我正在使用类似以下内容的内容:

\usepackage{fancyhdr}
\pagestyle{fancy}
\lhead{Title of the book}
\chead{}
\rhead{\thepage}
\renewcommand{\headrulewidth}{0.4pt}
\renewcommand{\footrulewidth}{0pt}

我相信我应该用类似的东西

\renewcommand{\pagenumbering}{Roman}

但是,我无法访问序言的页码(我的意思是基本上包含目录的第一页。

编辑:[最小工作示例]

\documentclass[oneside,final,portrait,10pt]{book}

\usepackage{fancyhdr}
\pagestyle{fancy}
\lhead{To do}
\chead{}
\rhead{\thepage}
\renewcommand{\headrulewidth}{0.4pt}
\renewcommand{\footrulewidth}{0pt}
\pagenumbering{Roman}

\makeindex

\begin{document}

%\doublespace
\title{This book}
\author{Myself} \maketitle

\pagebreak

\frontmatter
\tableofcontents
\mainmatter

\chapter{Introduction}\label{capitulo_introducao}
%
%
This is my introduction

\end{document}

答案1

\frontmatter切换到roman(小写)数字,然后\mainmatters切换回阿拉伯数字,因此如果要防止这种情况发生,则意味着要么删除\frontmatter这些\mainmatter宏,要么使用xpatchcmdfrom修补此行为埃格雷格的 xpatch包裹。

我对命令的成功/失败测试有点懒惰\xpatchcmd;-)

\documentclass[oneside,final,portrait,10pt]{book}

\usepackage{xpatch}%

\xpatchcmd{\frontmatter}{\pagenumbering{roman}}{\pagenumbering{Roman}}{}{}%
\xpatchcmd{\mainmatter}{\pagenumbering{arabic}}{\pagenumbering{Roman}}{}{}%

\usepackage{fancyhdr}
\pagestyle{fancy}
\lhead{To do}
\chead{}
\rhead{\thepage}
\renewcommand{\headrulewidth}{0.4pt}
\renewcommand{\footrulewidth}{0pt}
\pagenumbering{Roman}

\makeindex


\begin{document}

%\doublespace
\title{This book}
\author{Myself} \maketitle

\pagebreak

\frontmatter
\tableofcontents
\mainmatter

\chapter{Introduction}\label{capitulo_introducao}
%
%
This is my introduction

\end{document}

相关内容