Estoy trabajando con un libro y me gustaría cambiar un número de página arbitrario de arabic
a alph
sin depender de ningún marcador o referencia en el texto del documento. No tengo idea de por dónde empezar.Esta pregunta es similarCreo, pero no pude traducir ninguna de esas soluciones a mi problema.
En el MWE a continuación, me gustaría cambiar el número de página "3" en el asunto principal a "tres", dejando todos los demás números de página como están.
\documentclass{book}
\usepackage[english]{babel}
\usepackage{blindtext}
\begin{document}
\frontmatter
\blinddocument
\mainmatter
\blinddocument
\end{document}
Entonces, el recuento final de páginas en el asunto principal sería (1, 2, tres, 4).
ACTUALIZACIÓN: Me di cuenta de que en mi ejemplo simple (tontamente) no especifiqué cómo se estilizaron las páginas, y eso hace que la implementación sea un poco más complicada. Seguí adelante con la sugerencia de Christian de no cambiar ninguna \the...
macro, aunque encontré que la solución de Henri era más sencilla de implementar, porque estoy usando una tabla de contenido. Mi código original era:
\RequirePackage[markcase=used]{scrlayer-scrpage}
\providepairofpagestyles{mystyle}{%
\clearpairofpagestyles%
\automark[chapter]{chapter}
\ihead{\headmark}
\ohead[\pagemark]{\pagemark}
}
Actualizado a:
\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}
}
Probablemente haya mejores formas de hacer esto, ¡pero parece funcionar!
Respuesta1
Esto supone que el plain
estilo de página se aplicará después \mainmatter
y verifica si el número de página es igual a algún número predefinido, por ejemplo 3
, y luego aplica la \numberstringnum
macro.
\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}
Respuesta2
Puede redefinir \thepage
para imprimir en el formato deseado. El \mainmatter
comando \thepage
también se redefine, por lo que debe colocar la redefinición después de eso.
\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}