Eliminar automáticamente el número de página en documentos de una página

Eliminar automáticamente el número de página en documentos de una página

La elección de LaTeX de poner un número de página en documentos de una página me parece estilísticamente extraña, por lo que me gustaría suprimir ese comportamiento. Ya hice esto anteriormentea mano, pero sería mejor no tener que realizar un seguimiento de la longitud del documento.

La pregunta ha sido hechaantes, pero la solución preferida por el OP implica jugar con \maketitle, lo cual no tiene relevancia para mí aquí. el aceptadorespuestacrea una macro que debe ir después \begin{doucument}, pero sería mejor tener algo que pueda poner en mi preámbulo o .styarchivo, para no tener que acordarme de poner siempre alguna macro personalizada en cada documento que escribo.

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}

Respuesta1

Hay algunos paquetes que pueden contar más o menos el número de páginas ( totpages, count1to, lastpage, ...). El ejemplo utiliza el paquete 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}

Se necesitan dos ejecuciones de LaTeX, porque en el momento en que se envía la primera página, no se sabe en general cuántas páginas seguirán.

\ztotpageses cero en la primera ejecución de LaTeX, cuando la zrefetiqueta LastPageno está registrada en el .auxarchivo.

Respuesta2

Si le entiendo correctamente, desea eliminar el número de página en la primera página, pero conservar el encabezado. Esto se puede hacer definiendo un estilo fancyhdr personalizado que sea idéntico al predeterminado fancypero sin numeración de páginas y utilícelo solo para la primera 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}

¡Victoria! Conseguí que la parte de automatización funcionara usando lastpagey ifthen. En resumen, comprueba si la longitud del documento (según lo determinado por lastpage) es superior a 1 página. Si el documento es de 1 página, mystylese utiliza el estilo donde hay numeración de páginas. Sin embargo, si el documento tiene más de 1 página, se utilizará la primera página mystyley las páginas siguientes utilizarán el 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}

Lo único ahora es que no se puede usar en un preámbulo...

Respuesta3

El ejemplo con lastpagepaquete:

\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}

Respuesta4

Buenas noches, podemos probar el número de página al final del documento. Si solo hay una página, se borrará el pie de página en el centro; de lo contrario, continuará sin cambiar los valores predeterminados y el número de página permanecerá intacto.

\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}

información relacionada