Estou trabalhando com um livro e gostaria de alterar um número de página arbitrário de arabic
para alph
sem depender de marcadores ou referências no texto do documento. Não tenho ideia por onde começar.Esta questão é semelhante, eu acho, mas não consegui traduzir nenhuma dessas soluções para o meu problema.
No MWE abaixo, gostaria de alterar o número da página "3" no assunto principal para "três", deixando todos os outros números de página como estão.
\documentclass{book}
\usepackage[english]{babel}
\usepackage{blindtext}
\begin{document}
\frontmatter
\blinddocument
\mainmatter
\blinddocument
\end{document}
Portanto, a contagem final de páginas no assunto principal seria (1, 2, três, 4).
ATUALIZAÇÃO: percebi que em meu exemplo simples (tolamente) não especifiquei como as páginas foram estilizadas e isso torna a implementação um pouco mais complicada. Segui em frente com a sugestão de Christian de não alterar nenhuma \the...
macro - embora eu tenha achado a solução de Henri mais simples de implementar - porque estou usando um índice analítico. Meu código original era:
\RequirePackage[markcase=used]{scrlayer-scrpage}
\providepairofpagestyles{mystyle}{%
\clearpairofpagestyles%
\automark[chapter]{chapter}
\ihead{\headmark}
\ohead[\pagemark]{\pagemark}
}
Atualizado para:
\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}
}
Provavelmente existem maneiras melhores de fazer isso, mas parece funcionar!
Responder1
Isso assume o plain
estilo de página a ser aplicado depois \mainmatter
e verifica se o número da página é igual a algum número predefinido, digamos 3
, e aplica a \numberstringnum
macro então.
\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}
Responder2
Você pode redefinir \thepage
para imprimir no formato desejado. O \mainmatter
comando \thepage
também redefine, então você deve colocar a redefinição depois disso.
\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}