Sie sind hier

scrlttr2 Seitennummer auf erster Seite, wenn insg. mehr als eine Seite

Hallo verehrtes Forum,

ich möchte gerne in einem Brief die Seitenzahl (x von y) im Footer ausgeben, wenn der Brief mehr als eine Seite hat. In dem Fall soll auf allen Seiten (x von y) stehen. Leider gelingt mir das für die erste Seite nicht, d.h.:

- Hat das Dokument 1 Seite, scheint es zu klappen (Seite x von y taucht nicht auf)
- Hat das Dokument mehr als eine Seite, taucht Seite x von y auf allen Seiten>=2 auf.

Ich würde mich sehr freuen, wenn mir jemand von Euch hierbei behilflich seien könnte. Vielen Dank!

Hier mein MWE (ich nutze TexLive 2018, mit aktuellen Updates)

\documentclass[version=last]{scrlttr2}
\usepackage[ngerman]{babel}
\usepackage{scrlayer-scrpage}
\usepackage{zref-lastpage}
 
\makeatletter
\renewcommand{\pagemark}{%
	\ifnum\zref@extractdefault{LastPage}{page}{0}>1
		\pagename\ \thepage\ von\ \zref@extract{LastPage}{page}%
	\fi
}
\makeatother
\pagestyle{headings}
 
\cofoot{}
\rofoot{\pagemark}
 
\begin{document}
\begin{letter}{%
	Petra Mustermann\\
	Vor dem Berg 1\\
	12345 Musterhausen%
}
\opening{Liebe Vereinsvorsitzende,}
 
hello world!
Hello world!\newpage
Hello again!\newpage
Hello again!\newpage
Hello again!
 
\closing{Mit freundlichen Grüßen}
\end{letter}
\end{document}

Nachtrag: Nutze ich anstelle scrlttr2 die Klasse scrartcl funktioniert's - ich vermute das beschriebene Problem hat etwas mit dem first-/next-head zu tun (blicke da aber nicht durch).

Bild von Markus Kohm

Wie der Anleitung zu entnehmen ist, wird die erste Briefseite im Seitenstil empty ausgegeben. Kopf und Fuß dieser Seite wird also normalerweise nicht über den Seitenstil bestimmt. Stattdessen definiert man die Elemente des Briefbogens mit \setkomavar. So kann man beispielsweise mit \setkomavar{firstfoot}{…} der ersten Seite einen Fuß verpassen:

\documentclass[version=last]{scrlttr2}
\usepackage[ngerman]{babel}
\usepackage{scrlayer-scrpage}
\usepackage{zref-lastpage}
 
\makeatletter
\renewcommand{\pagemark}{%
	\ifnum\zref@extractdefault{LastPage}{page}{0}>1
		\pagename\ \thepage\ von\ \zref@extract{LastPage}{page}%
	\fi
}
\makeatother
\setkomavar{firstfoot}{\raggedleft\usekomafont{pageheadfoot}{\usekomafont{pagefoot}{\pagemark}}}
 
\cofoot{}
\rofoot{\pagemark}
 
\begin{document}
\begin{letter}{%
	Petra Mustermann\\
	Vor dem Berg 1\\
	12345 Musterhausen%
}
\opening{Liebe Vereinsvorsitzende,}
 
hello world!
Hello world!\newpage
Hello again!\newpage
Hello again!\newpage
Hello again!
 
\closing{Mit freundlichen Grüßen}
\end{letter}
\end{document}

Es wird auffallen, dass dieser Fuß an einer anderen Stelle steht. Auch das ist beabsichtigt. Die Position der Elemente des Briefbogens werden über Pseudolängen bestimmt. Man kann auch diese über \@setplength etc. anpassen (bei aktuellem KOMA-Script geht es etwas einfacher mit \setplength, also ohne @). Soll allerdings einfach der Fuß von scrheadings angezeigt werden, kann man auch dessen Fuß-Layer zu empty hinzufügen:

\documentclass[version=last]{scrlttr2}
\usepackage[ngerman]{babel}
\usepackage{scrlayer-scrpage}
\usepackage{zref-lastpage}
 
\makeatletter
\renewcommand{\pagemark}{%
	\ifnum\zref@extractdefault{LastPage}{page}{0}>1
		\pagename\ \thepage\ von\ \zref@extract{LastPage}{page}%
	\fi
}      
\makeatother
 
\cofoot{}
\rofoot{\pagemark}
 
\AddLayersToPageStyle{empty}{% siehe scrguide, Abschnitt 17.4
  scrheadings.foot.aboveline,% siehe Tabelle 18.1
  scrheadings.foot.odd,% siehe Tabelle 18.1
  scrheadings.foot.even,% siehe Tabelle 18.1
  scrheadings.foot.oneside,% siehe Tabelle 18.1
  scrheadings.foot.belowline% siehe Tabelle 18.1
}
 
\begin{document}
\begin{letter}{%
	Petra Mustermann\\
	Vor dem Berg 1\\
	12345 Musterhausen%
}
\opening{Liebe Vereinsvorsitzende,}
 
hello world!
Hello world!\newpage
Hello again!\newpage
Hello again!\newpage
Hello again!
 
\closing{Mit freundlichen Grüßen}
\end{letter}
\end{document}

Natürlich ist empty dann nicht mehr wirklich leer und es stellt sich die Frage, ob es nicht besser wäre, auf der ersten Seite einfach den Seitenstil plain zu erzwingen:

\documentclass[version=last]{scrlttr2}
\usepackage[ngerman]{babel}
\usepackage{scrlayer-scrpage}
\usepackage{zref-lastpage}
 
\makeatletter
\renewcommand{\pagemark}{%
	\ifnum\zref@extractdefault{LastPage}{page}{0}>1
		\pagename\ \thepage\ von\ \zref@extract{LastPage}{page}%
	\fi
}      
\makeatother
 
\cofoot*{}% Geändert!
\rofoot*{\pagemark}% Geändert!
 
\begin{document}
\begin{letter}{%
	Petra Mustermann\\
	Vor dem Berg 1\\
	12345 Musterhausen%
}
\opening{Liebe Vereinsvorsitzende,}
\thispagestyle{plain}% ist in Wirklichkeit natürlich plain.scrheadings 
hello world!
Hello world!\newpage
Hello again!\newpage
Hello again!\newpage
Hello again!
 
\closing{Mit freundlichen Grüßen}
\end{letter}
\end{document}

Per xpatch kann man die \thispagestyle-Anweisung auch bereits in der Dokumentpräambel an \opening anhängen:

\documentclass[version=last]{scrlttr2}
\usepackage[ngerman]{babel}
\usepackage{scrlayer-scrpage}
\usepackage{zref-lastpage}
\usepackage{xpatch}
 
\makeatletter
\renewcommand{\pagemark}{%
	\ifnum\zref@extractdefault{LastPage}{page}{0}>1
		\pagename\ \thepage\ von\ \zref@extract{LastPage}{page}%
	\fi
}      
\makeatother
 
\cofoot*{}% Geändert!
\rofoot*{\pagemark}% Geändert!
 
\xapptocmd{\opening}{\thispagestyle{plain}}{}{\PatchFailure}
 
\begin{document}
\begin{letter}{%
	Petra Mustermann\\
	Vor dem Berg 1\\
	12345 Musterhausen%
}
\opening{Liebe Vereinsvorsitzende,}
hello world!
Hello world!\newpage
Hello again!\newpage
Hello again!\newpage
Hello again!
 
\closing{Mit freundlichen Grüßen}
\end{letter}
\end{document}

BTW: \pagestyle{headings} kann man sich sparen, da beim Laden von scrlayer-scrpage bereits \pagestyle{scrheadings} ausgeführt wird. Wäre dem nicht so, würde \pagestyle{headings} übrigens gar nicht zum richtigen Seitenstil führen.

Ich bitte darum, die verwendeten Anweisungen noch einmal in der Anleitung oder im Buch nachzulesen.

Die Position der Seitenzahl auf den Folgeseiten lässt sich auch über die Option pagenumber bestimmen: mit pagenumber=botright wird sie dort im Fuß rechts gesetzt. Abhängig von den weiteren Wünschen an Kopf- und Fußzeile kann man dann eventuell sogar auf das Paket verzichten. Der Seitenstil plain lässt sich in dem Beispiel auf der ersten Briefseite auch über die Variable firstfoot setzen.

\documentclass[
  pagenumber=botright%<- ergänzt
]{scrlttr2}
\usepackage{blindtext}% nur für Fülltext
%\usepackage{scrlayer-scrpage}
\usepackage[ngerman]{babel}
\usepackage{zref-lastpage}
 
\makeatletter
\renewcommand{\pagemark}{{%
  \usekomafont{pagenumber}% <- ergänzt
  \ifnum\zref@extractdefault{LastPage}{page}{0}>1
    \pagename\ \thepage\ von\ \zref@extract{LastPage}{page}%
  \fi
}}
\makeatother
 
\setkomavar{firstfoot}{\thispagestyle{plain}}%<- Seitenstil plain auf der ersten Seite
 
\begin{document}
\begin{letter}{%
  Petra Mustermann\\
  Vor dem Berg 1\\
  12345 Musterhausen%
}
\opening{Liebe Vereinsvorsitzende,}
\Blindtext[2]
\Blindtext[10]
\closing{Mit freundlichen Grüßen}
\end{letter}
\end{document}

Das Paket scrlayer-scrpage würde es aber auch ermöglichen, die in der Variable firstfoot definierte Fußzeile der ersten Briefseite auf den Folgeseiten an gleicher Position zu übernehmen.

\documentclass{scrlttr2}
\usepackage{blindtext}
\usepackage[ngerman]{babel}
\usepackage{scrlayer-scrpage}
\usepackage{zref-lastpage}
 
\makeatletter
\renewcommand{\pagemark}{{%
  \usekomafont{pagenumber}% <- ergänzt
  \ifnum\zref@extractdefault{LastPage}{page}{0}>1
    \pagename\ \thepage\ von\ \zref@extract{LastPage}{page}%
  \fi
}}
\makeatother
 
\setkomavar{firstfoot}{%
  \parbox[t]{\useplength{firstfootwidth}}{%
    \raggedleft\usekomafont{pageheadfoot}{\usekomafont{pagefoot}{\pagemark}}%
  }%
}
 
\DeclareNewLayer[
  foreground,
  oddpage,
  textarea,
  voffset=\useplength{firstfootvpos},
  hoffset=\dimexpr.5\paperwidth-.5\useplength{firstfootwidth}\relax,
  width=\useplength{firstfootwidth},
  mode=picture,
  contents=\putUL{\raisebox{\dimexpr-\height\relax}{\usekomavar{firstfoot}}}
]{likefirstpage.foot}
\AddLayersToPageStyle{scrheadings}{likefirstpage.foot}
 
\cfoot*{}
 
\begin{document}
\begin{letter}{%
  Petra Mustermann\\
  Vor dem Berg 1\\
  12345 Musterhausen%
}
\opening{Liebe Vereinsvorsitzende,}
\Blindtext[2]
\Blindtext[10]
\closing{Mit freundlichen Grüßen}
\end{letter}
\end{document}
Comments for "scrlttr2 Seitennummer auf erster Seite, wenn insg. mehr als eine Seite" abonnieren