Usando ifthen para ocultar o número da página em certas páginas com um estilo de numeração de página como romano

Usando ifthen para ocultar o número da página em certas páginas com um estilo de numeração de página como romano

No meu documento, quero ocultar certas coisas dos cabeçalhos/rodapés usandoifthen(em vez de definir novos estilos de página). Por exemplo, gostaria de ocultar o número da página nas primeiras páginas:

\cfoot{\ifthenelse{\thepage<11}{}{\thepage}}

Isso ocultará o número da página em páginas menores que 11 (portanto, páginas de 1 a 10) e mostrará o número da página se for 11 ou superior, no rodapé central.

No entanto, isso parece funcionar apenas se a numeração das páginas for árabe. Digamos que eu queira alterar a numeração das primeiras cinco páginas para romano. Então minhas páginas seriam numeradas da seguinte forma:

i, ii, iii, iv, v, 1, 2, 3, 4, 5, 6, ...

Isso atrapalharia minha ifthencondicional, porque, por exemplo, para a primeira página, a expressão in \cfootseria avaliada da seguinte forma:

\ifthenelse{i<11}{}{\thepage}

e i<11não faz sentido.

Minha pergunta agora é: talvez haja um contador melhor para usar, em vez de \thepage, que pode ser um valor não numérico se a numeração da página for romana?

Responder1

Em vez disso, use \value{page}than \thepage, para realizar um teste numérico no valor do contador de páginas, não na sua definição de saída (que de qualquer maneira falharia em certos casos).

Na minha opinião, não há necessidade de usar \ifthenelse. A primitiva TeX \ifnumé suficiente aqui.

\documentclass{article}

\usepackage{fancyhdr}

\usepackage{blindtext}
\def\pagethreshold{10}

\fancypagestyle{plain}{%
  \renewcommand{\headrulewidth}{0pt}
  \fancyhf{}
   \cfoot{%
   \ifnum\pagethreshold<\value{page}
     \arabic{page}% or \thepage
    \else
    % Do something else
   \fi
 }
}

\pagestyle{plain}

\begin{document}
\blindtext[100]
\end{document}

Atualização para possível \pagenumberinguso

\documentclass{article}

\usepackage{fancyhdr}

\usepackage{blindtext}


\newif\ifshowpagenumbers
\showpagenumbersfalse% Don't show them
\def\pagetreshold{10}

\fancypagestyle{plain}{%
  \renewcommand{\headrulewidth}{0pt}
  \fancyhf{}
  \cfoot{%
    \ifshowpagenumbers
    \thepage
    \else
    \ifnum\pagetreshold<\value{page}
    \arabic{page}% or \thepage
    \else
    %
    \fi
    \fi
  }
}

\pagestyle{plain}

\begin{document}
\pagenumbering{roman}
\blindtext[50]
\clearpage
\showpagenumberstrue% Show them!
\pagenumbering{arabic}
\blindtext[50]

\end{document}    

informação relacionada