![Remover automaticamente o número da página em documentos de uma página](https://rvso.com/image/286331/Remover%20automaticamente%20o%20n%C3%BAmero%20da%20p%C3%A1gina%20em%20documentos%20de%20uma%20p%C3%A1gina.png)
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 .sty
arquivo, 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 zref
rótulo LastPage
não está sim gravado no .aux
arquivo.
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, fancy
mas 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 lastpage
e 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, mystyle
será 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á mystyle
e as páginas seguintes usarão o fancy
estilo.
\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 lastpage
pacote:
\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}