![Seitenzahl in einseitigen Dokumenten automatisch entfernen](https://rvso.com/image/286331/Seitenzahl%20in%20einseitigen%20Dokumenten%20automatisch%20entfernen.png)
Ich finde die Entscheidung von LaTeX, eine Seitenzahl in einseitige Dokumente einzufügen, stilistisch seltsam, daher möchte ich dieses Verhalten unterdrücken. Ich habe dies zuvor getanmanuell, aber es wäre besser, wenn ich nicht selbst den Überblick über die Länge des Dokuments behalten müsste.
Die Frage wurde gestelltVor, aber die vom OP bevorzugte Lösung beinhaltet das Spielen mit \maketitle
, was für mich hier keine Relevanz hat. Die akzeptierteAntworterstellt ein Makro, das danach ausgeführt werden muss \begin{doucument}
, aber es wäre besser, etwas zu haben, das ich in meine Präambel oder .sty
Datei einfügen kann, sodass ich nicht daran denken muss, in jedes Dokument, das ich schreibe, immer ein benutzerdefiniertes Makro einzufügen.
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}
Antwort1
Es gibt einige Pakete, die die Anzahl der Seiten mehr oder weniger zählen können ( totpages
, count1to
, lastpage
, ...). Das Beispiel verwendet das Paket 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}
Es sind zwei LaTeX-Durchläufe notwendig, da zum Zeitpunkt der Auslieferung der ersten Seite in der Regel noch nicht bekannt ist, wie viele Seiten noch folgen werden.
\ztotpages
ist beim ersten LaTeX-Durchlauf Null, wenn das zref
Label LastPage
ja nicht in der .aux
Datei festgehalten ist.
Antwort2
Wenn ich Sie richtig verstehe, möchten Sie die Seitenzahl auf der ersten Seite entfernen, aber die Kopfzeile beibehalten. Dies können Sie erreichen, indem Sie einen benutzerdefinierten Fancyhdr-Stil definieren, der mit dem Standard identisch ist, fancy
aber keine Seitennummerierung aufweist, und diesen nur für die erste Seite verwenden. Vollständiges MWE:
\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}
Sieg! Der Automatisierungsteil funktioniert mit lastpage
und ifthen
. Kurz gesagt, es wird geprüft, ob die Dokumentlänge (wie durch bestimmt lastpage
) mehr als 1 Seite beträgt. Wenn das Dokument 1 Seite lang ist, mystyle
wird der Stil verwendet, wenn Seitennummern vorhanden sind. Wenn das Dokument jedoch länger als 1 Seite ist, wird auf der ersten Seite mystyle
der Stil verwendet und auf den folgenden Seiten fancy
.
\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}
Das Einzige, was jetzt fehlt, ist, dass es in einer Präambel verwendet werden kann ...
Antwort3
Das Beispiel mit lastpage
Paket:
\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}
Antwort4
Guten Abend, wir können die Seitenzahl am Ende des Dokuments testen. Wenn es nur eine Seite gibt, wird die Fußzeile in der Mitte gelöscht, andernfalls wird ohne Änderung der Standardwerte fortgefahren und die Seitenzahl bleibt unverändert.
\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}