Изменить способ печати номера отдельной страницы

Изменить способ печати номера отдельной страницы

Я работаю с книгой и хотел бы изменить произвольный номер страницы с arabicна, alphне полагаясь ни на какие маркеры или ссылки в тексте документа. Понятия не имею, с чего начать.Этот вопрос похож, я думаю, но я не смог применить ни одно из этих решений к моей проблеме.

В приведенном ниже MWE я хотел бы изменить номер страницы «3» в основном тексте на «три», оставив все остальные номера страниц без изменений.

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

\begin{document}

\frontmatter
\blinddocument

\mainmatter
\blinddocument

\end{document}

Таким образом, окончательное количество страниц в основном материале будет (1, 2, три, 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}

Связанный контент