我正在處理一本書,我想將任意頁碼從 更改為 ,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}