标题中的旧式(阿拉伯)数字删除了罗马分页

标题中的旧式(阿拉伯)数字删除了罗马分页

使用以下代码在标题中获取旧式(阿拉伯)数字,使序言页码(罗马数字)消失。这是一个最小的工作示例:

\documentclass{book}
\usepackage{fancyhdr}
\usepackage{lmodern}
\usepackage{lipsum}
\usepackage{multicol}
\usepackage{textcomp}
\usepackage{pdfpages}

\pagestyle{fancy}
\fancyhead[LE]{\oldstylenums{\thepage}}
\fancyhead[RO]{\oldstylenums{\thepage}}

\begin{document}
\frontmatter
\lipsum
\mainmatter
\lipsum
\end{document}

如您所见,在前言中,标题没有分页(尽管底部仍有分页)。谢谢。

答案1

\makeatletter
\fancyhead[LE]{\if@mainmatter\oldstylenums{\arabic{page}}\else\thepage\fi}
\fancyhead[RO]{\if@mainmatter\oldstylenums{\arabic{page}}\else\thepage\fi}
\makeatother

答案2

\thepage 在前言中给出了罗马数字。\oldstylenums 不知道如何处理它。如果您想在页眉中使用数字,请使用 \fancyhead[LE]{\oldstylenums{\arabic{page}}}。

答案3

\def\isnum#1{%
  \if!\ifnum9<1#1!\else_\fi
    \oldstylenums{#1}\else#1\fi}

\fancyhead[LE]{\isnum{\thepage}}}
\fancyhead[RO]{\isnum{\thepage}}}

相关内容