Remover automaticamente o número da página em documentos de uma página

Remover automaticamente o número da página em documentos de uma página

Acho estilisticamente estranha a escolha do LaTeX de colocar um número de página em documentos de uma página, então gostaria de suprimir esse comportamento. Eu já fiz isso anteriormentemanualmente, mas seria melhor não precisar acompanhar a duração do documento.

A pergunta foi feitaantes, mas a solução preferida pelo OP envolve brincar com \maketitle, o que não tem relevância para mim aqui. O aceitorespondercria uma macro que precisa ir depois \begin{doucument}, mas seria melhor ter algo que eu pudesse colocar no meu preâmbulo ou .styarquivo, para não precisar me lembrar de sempre colocar alguma macro personalizada em cada documento que escrevo.

MWE:

\documentclass{article}
\usepackage{lipsum,fancyhdr}
    \pagestyle{fancy}
    \fancyhead[C]{Don't ever remove this header}
\begin{document}
\lipsum[1] % automatically remove page number in a document with this line
\lipsum[1-6] % automatically keep page numbers in a document with this line
\end{document}

Responder1

Existem alguns pacotes que podem contar mais ou menos o número de páginas ( totpages, count1to, lastpage, ...). O exemplo usa pacote zref-totpages:

\documentclass{article}

\usepackage{zref-totpages}

\usepackage{lipsum,fancyhdr}
\pagestyle{fancy}
\fancyhead[C]{Don't ever remove this header}
\fancyfoot[C]{%
  \ifnum\ztotpages=1 \else\thepage\fi
}

\begin{document}
\lipsum[1] % automatically remove page number in a document with this line
%\lipsum[1-6] % automatically keep page numbers in a document with this line
\end{document}

São necessárias duas execuções de LaTeX, porque no momento, quando a primeira página é enviada, não se sabe em geral quantas páginas se seguirão.

\ztotpagesé zero na primeira execução do LaTeX, quando o zrefrótulo LastPagenão está sim gravado no .auxarquivo.

Responder2

Se bem entendi, você deseja remover o número da página da primeira página, mas preservar o cabeçalho. Isso pode ser feito definindo um estilo fantasiahdr personalizado que seja idêntico ao padrão, fancymas sem numeração de página e use-o apenas para a primeira página. MWE completo:

\documentclass{article}
\usepackage{lipsum,fancyhdr}
    \pagestyle{fancy}
    \fancyhead[C]{Don't ever remove this header}
\fancypagestyle{mystyle}{
    \fancyhf{}
    \fancyhead[C]{Don't ever remove this header}
    \fancyfoot[C]{}
}
\begin{document}
\thispagestyle{mystyle}
\lipsum[1] % automatically remove page number in a document with this line
\pagestyle{fancy}
\lipsum[1-6] % automatically keep page numbers in a document with this line
\end{document}

Vitória! A parte de automação funcionou usando lastpagee ifthen. Resumindo, verifica se o comprimento do documento (conforme determinado por lastpage) é ou não superior a 1 página. Se o documento tiver 1 página, mystyleserá utilizado o estilo onde houver numeração de páginas. No entanto, se o documento tiver mais de 1 página, a primeira página usará mystylee as páginas seguintes usarão o fancyestilo.

\documentclass{article}
\usepackage{lipsum,fancyhdr,ifthen,lastpage}
\pagestyle{fancy}
\fancyhead[C]{Don't ever remove this header}
\fancypagestyle{mystyle}{
    \fancyhf{}
    \fancyhead[C]{Don't ever remove this header}
    \fancyfoot[C]{}
}
\begin{document}
\ifthenelse{\pageref{LastPage}=1}
{
    \pagestyle{mystyle}
}
{
    \thispagestyle{mystyle}
}
\lipsum[1] % automatically remove page number in a document with this line
\lipsum[1-6] % automatically keep page numbers in a document with this line
\end{document}

A única coisa agora é que não pode ser usado em um preâmbulo...

Responder3

O exemplo com lastpagepacote:

\documentclass{article}
\usepackage{lastpage}
\usepackage{refcount}
\usepackage{etoolbox}
\usepackage{lipsum,fancyhdr}
\pagestyle{fancy}
\fancyhead[C]{Don't ever remove this header}
\begin{document}
\ifnumcomp{\getpagerefnumber{LastPage}}{>}{2}{}{\fancyfoot{}} 
 % If document is longer than 2 pages there will be page numeration, if not there will     not be.
\lipsum[1] % automatically remove page number in a document with this line
\end{document}

Responder4

Boa noite, podemos testar o número da página no final do documento. Se houver apenas uma página, o rodapé no centro será limpo, caso contrário, seguirá em frente sem alterar os valores padrão e o número da página permanecerá inalterado.

\documentclass{article}
\usepackage{lipsum,fancyhdr}
\pagestyle{fancy}
\fancyhead[C]{Don't ever remove this header}
\begin{document}
\lipsum[1]
%\lipsum[1-6] % Turn on/off this line...
\ifnum\thepage=1\fancyfoot[C]{}\fi
\end{document}

informação relacionada