更改單一頁碼的列印方式

更改單一頁碼的列印方式

我正在處理一本書,我想將任意頁碼從 更改為 ,arabic而不alph依賴文件文字中的任何標記或引用。我不知道從哪裡開始。這個問題是類似的,我想,但我無法將這些解決方案轉化為我的問題。

在下面的 MWE 中,我想將主要內容中的頁碼“3”更改為“三”,同時保留所有其他頁碼不變。

\documentclass{book}
\usepackage[english]{babel}
\usepackage{blindtext}

\begin{document}

\frontmatter
\blinddocument

\mainmatter
\blinddocument

\end{document}

因此,主要內容的最終頁數將為 (1, 2, 3, 4)。

更新:我意識到在我的簡單範例中,我(愚蠢地)沒有指定頁面的風格化方式,這使得實作變得有點棘手。我繼續遵循克里斯蒂安的建議,不要更改任何巨集\the...——儘管我發現亨利的解決方案更容易實現——因為我使用的是目錄。我原來的程式碼是:

\RequirePackage[markcase=used]{scrlayer-scrpage}
\providepairofpagestyles{mystyle}{%
    \clearpairofpagestyles%
    \automark[chapter]{chapter}
    \ihead{\headmark}
    \ohead[\pagemark]{\pagemark}
}

更新為:

\def\targetpage{3}
\def\pagestring{\numberstringnum{\targetpage}}

\RequirePackage[markcase=used]{scrlayer-scrpage}
\providepairofpagestyles{mystyle}{%
    \clearpairofpagestyles%
    \automark[chapter]{chapter}
    \ihead{\headmark}
    \ohead[\ifnum\value{page}=\targetpage\pagestring\else\thepage\fi]{\ifnum\value{page}=\targetpage\pagestring\else\thepage\fi}
} 

可能有更好的方法可以做到這一點,但它似乎有效!

答案1

這假設plain之後會套用頁面樣式\mainmatter,並檢查頁碼是否等於某個預先定義的數字,例如3,然後套用\numberstringnum巨集。

\documentclass{book}
\usepackage[english]{babel}

\usepackage{fmtcount}
\usepackage{fancyhdr}
\usepackage{blindtext}

\def\theliteralpage{3}

\fancypagestyle{plain}{%
  \fancyhf{}
  \renewcommand{\headrulewidth}{0pt}
  \cfoot{\ifnum\theliteralpage=\value{page}\numberstringnum{\theliteralpage}\else\thepage\fi}
}

\begin{document}
\frontmatter
\blinddocument

\mainmatter
\pagestyle{plain}
\blinddocument

\end{document}

在此輸入影像描述

答案2

您可以重新定義\thepage以所需的格式列印。該\mainmatter命令\thepage也會重新定義,因此您必須將重新定義放在該命令之後。

\documentclass{book}
\usepackage[english]{babel}
\usepackage{blindtext}
\usepackage{fmtcount}
\begin{document}

\frontmatter
\blinddocument

\mainmatter
\renewcommand\thepage{%
  \ifnum\value{page}=3
    \numberstring{page}%
  \else
    \arabic{page}%
  \fi}

\blinddocument

\end{document}

相關內容