在回忆录中将 \leftmark 数字更改为 \oldstylenums

在回忆录中将 \leftmark 数字更改为 \oldstylenums

参照下图,我尝试将标题上的数字“1”更改\leftmark\oldstylenums数字格式。有人能帮忙吗?

图片

这是我的 MWE:

\documentclass[12pt,twoside,openright]{memoir}
\usepackage{lipsum}

\pagestyle{headings}
\makeevenhead{headings}{}{\textsc{\MakeLowercase\leftmark}}{\oldstylenums{\thepage}}

\begin{document}

\mainmatter
\nouppercaseheads
\pagestyle{headings}

\chapter{Introduction}
\lipsum[1-6]

\end{document}

我试图复制并粘贴提供的默认代码memoir(参考下面的代码)希望我可以从那里更改它,但最终出现了多个我无法理解的错误。

\makepagestyle{headings}
\makeevenhead{headings}{\thepage}{}{\slshape\leftmark}
\makeoddhead{headings}{\slshape\rightmark}{}{\thepage}
\makepsmarks{headings}{%
 \def\chaptermark##1{%
  \markboth{\MakeUppercase{%
   \ifnum\c@secnumdepth > \m@ne
    \if@mainmatter
     \@chapapp\ \thechapter. \ %
    \fi
   \fi
   ##1}}{}}%
 \def\sectionmark##1{%
  \markright{\MakeUppercase{%
   \ifnum\c@secnumdepth > \z@
    \thesection. \ %
   \fi
   ##1}}}
}

答案1

如果您粘贴包或类中的部分代码来直接修补它们,则需要将这些部分括在里面,\makeatletter...\makeatother因为@用户手稿中的 catcode 与类和样式文件中的 catcode 不同。

无论如何,您都可以通过取消从 开始的部分来缩短解决问题的时间,\def\sectionmark...因为无论如何您都不需要更改它。然后您只需替换\@chapapp\ \thechapter\@chapapp\ \oldstylenums\thechapter即可实际应用您的补丁。

甚至可以更短:你可以将补丁简化为

\renewcommand\chaptermark[1]{%
  \markboth{\MakeUppercase{%
    \ifmainmatter\chaptername~\oldstylenums\thechapter.~\fi#1}}{}}%

将其放在\pagestyle{headings}.之后\ifmainmatter是 的别名\if@mainmatter

\newif\ifmainmatter
\appto\mainmatter{\mainmattertrue}
\appto\backmatter{\mainmatterfalse}
\appto\appendix{\mainmatterfalse}

完整示例

\documentclass{memoir}
\usepackage{lipsum}
\usepackage{etoolbox}

\newif\ifmainmatter
\appto\mainmatter{\mainmattertrue}
\appto\backmatter{\mainmatterfalse}
\appto\appendix{\mainmatterfalse}

\makeevenhead{headings}{}{\textsc{\MakeLowercase\leftmark}}{\oldstylenums{\thepage}}
\nouppercaseheads
\pagestyle{headings}
\renewcommand\chaptermark[1]{%
  \markboth{\MakeUppercase{%
    \ifmainmatter\chaptername~\oldstylenums\thechapter.~\fi#1}}{}}%

\begin{document}
\mainmatter

\chapter{Introduction}
\lipsum[1-6]
\end{document}

示例_渲染

相关内容