Sie sind hier

scrlttr2 2011/01/25 v3.08 und pagesLTS 2010/09/27 v1.1m

Hallo,

versuche auf Briefen eine Seitennummerierung der Form 1/3, 2/3, 3/3 zu machen.
Natürlich geht das einfach mit dem Paket lastpage und dann den Teil nach dem / mit einem pageref lastpage zu machen. _Aber_ die meisten Briefklassen wie auch scrlttr2 erlauben es, Serienbriefe aus einer einzigen tex-Datei zu erzeugen. Falls die Briefe in der Datei jedoch verschiedene Seitenanzahlen haben, kann lastpage nicht mehr zwischen den Seitenzahlen der einzelnen Briefe unterscheiden.

Also fand ich das Paket pagesLTS, das bei jedem Wechsel der Seitennummerierungsart
einen Label erzeugt, die mensch in folgender Weise benutzen kann:

\newcounter{letterno}\setcounter{letterno}{0}
 
\AtBeginLetter{\stepcounter{letterno}}
\renewcommand*{\pagemark}{{\usekomafont{pagenumber}{\thepage/\lastpageref{pagesLTS.arabic.\arabic{letterno}}}}}

Das funktionierende Beispiel sieht dann so aus:

\documentclass[]{scrlttr2}
\usepackage{lipsum}
 
\usepackage[pagecontinue=true,alphMult=0,AlphMulti=0,fnsymbolmult=false,romanMult=false,RomanMulti=false]{pagesLTS}
 
\newcounter{letterno}\setcounter{letterno}{0}
 
\AtBeginLetter{\stepcounter{letterno}}
\renewcommand*{\pagemark}{{\usekomafont{pagenumber}{\thepage/\lastpageref{pagesLTS.arabic.\arabic{letterno}}}}}
\firstfoot{\centering \pagemark}
 
 
\begin{document}
\pagenumbering{arabic}
\begin{letter}{Familie Mensch}
\opening{Liebe Menschen,}
\lipsum[4]
\closing{MFG}
\end{letter}
 
\pagenumbering{roman}\pagenumbering{arabic}
 
\begin{letter}{Familie Mensch}
\opening{Liebe Menschen,}
\lipsum[4-57]
\closing{MFG}
\end{letter}
 
\end{document}

und es tut (eigentlich) was ich wollte, nur dass man vor dem ersten letter \pagenumbering{arabic}¹ und vor jedem weiteren \pagenumbering{roman}\pagenumbering{arabic}¹
sagen muss; letzteres, so versteh ich es, um einen neuen arabic-nummerierten Block zu beginnen.

Um das zu vermeiden, kam mir \AtBeginLetter¹ in den Sinn, was (etwa) das erreichen sollte.
Der nächste Versuch sieht dann so aus:

\documentclass[]{scrlttr2}
\usepackage{lipsum}
 
\usepackage[pagecontinue=true,alphMult=0,AlphMulti=0,fnsymbolmult=false,romanMult=false,RomanMulti=false]{pagesLTS}
 
\RequirePackage{ifthen}
 
\newcounter{letterno}\setcounter{letterno}{0}
 
\AtBeginLetter{\stepcounter{letterno}\ifthenelse{\value{letterno}=1}{\pagenumbering{arabic}}{\pagenumbering{roman}\pagenumbering{arabic}}}
\renewcommand*{\pagemark}{{\usekomafont{pagenumber}{\thepage/\lastpageref{pagesLTS.arabic.\arabic{letterno}}}}}
\firstfoot{\centering \pagemark}
 
 
\begin{document}
\begin{letter}{Familie Mensch}
\opening{Liebe Menschen,}
\lipsum[4]
\closing{MFG}
\end{letter}
 
\begin{letter}{Familie Mensch}
\opening{Liebe Menschen,}
\lipsum[4-57]
\closing{MFG}
\end{letter}
 
\end{document}

das geht jetzt auch automatisch, bis auf das kleine Problem, dass jetzt
die erste Seitenzahl so 1/0 aussieht.
irgendwie wird also in diesem Fall der label zu früh (noch vor der ersten Seite) plaziert.
der zweite Teil des Briefs ist dann wieder ok mit 1/10 ... 10/10.

Wäre dankbar für Rat, wie man hier den label für die erste Seite korrigiert (oder das gewünschte anders erreicht).
-sven

[Admin-Edit:]

  1. <code></code> Tags eingefügt (siehe Formatierungshinweise)

Bild von Markus Kohm

Einfache Lösung ganz ohne Zusatzpaket:

\documentclass{scrlttr2}
\usepackage{lipsum}
 
\newcounter{letter}
\AtBeginLetter{\stepcounter{letter}%
  \newcommand*{\pages}{\pageref{end.\theletter}}%
}
\AtEndLetter{\label{end.\theletter}}%
\renewcommand*{\pagemark}{{\usekomafont{pagenumber}{\thepage/\pages}}}
\setkomavar{firstfoot}{\pagemark}
\setkomavar{nextfoot}{\usekomavar{firstfoot}}
 
\begin{document}
\begin{letter}{Person A}
  \opening{Hallo}
  \lipsum[4]
  \closing{MFG}
\end{letter}
\begin{letter}{Person B}
  \opening{Hallo}
  \lipsum[4-57]
  \closing{MFG}
\end{letter}
\end{document}

Danke!

sven

Comments for "scrlttr2 2011/01/25 v3.08    und pagesLTS 2010/09/27 v1.1m" abonnieren