重置 scrlttr2 个字母中的 LastPage

重置 scrlttr2 个字母中的 LastPage

我正在尝试找到一种方法来将“第 X 页,共 Y 页”添加到我的scrlttr2信件页脚中。乍一看,使用lastpage包和\pageref*{LastPage}是可行的。但是,一旦文档中包含多封信件,的值LastPage就等于最后一封信件的页数。因此,例如,如果我的文档中有两封信件,一封有 2 页,另一封有 4 页,则上面的“Y”在第一封信件中也设置为 4。

我的第一个想法是定义页脚(通过设置\firstfoot\nextfoot\AtEndLetter{}因为那时我可以使用\thepage。不幸的是(并且,回想起来显然如此),在这种情况下,只有每封信的最后一页才会获得正确的页脚(之前的页面会获得默认scrlttr2页脚)。

顺便说一句,这不是如何在我的文档中添加“第 # 页,共 ## 页”?,我已经阅读了那里的答案,但(可以理解)似乎没有一个答案能够解决文档中可以有多个最后一页的事实。

答案1

您可以定义一个新的计数器,然后在字母开头处步进计数器并在结尾处设置标签:

\newcounter{Letter}
\AtBeginLetter{\stepcounter{Letter}}
\AtEndLetter{\label{lastpage\theLetter}}
\renewcommand\pagemark{\usekomafont{pagenumber}
  page \thepage{} of \pageref{lastpage\theLetter}}

不要用作letter计数器名称,因为下一个 KOMAScript 版本将定义一个名为的新计数器letter(请参阅下面的附加信息)。

在此处输入图片描述

在此处输入图片描述

代码:

\documentclass{scrlttr2}
\setkomavar{fromname}{Name}
\setkomavar{fromaddress}{Adresse}
\setkomavar{firstfoot}{\centering \pagemark}

\newcounter{Letter}
\AtBeginLetter{\stepcounter{Letter}}
\AtEndLetter{\label{lastpage\theLetter}}
\renewcommand\pagemark{\usekomafont{pagenumber}
  page \thepage{} of \pageref{lastpage\theLetter}}

\usepackage{blindtext}% dummy text
\begin{document}
\begin{letter}{letter \theLetter}
\opening{letter \theLetter}
\Blindtext
\end{letter}

\begin{letter}{letter \theLetter}
\opening{letter \theLetter}
\Blindtext[20]
\end{letter}
\end{document}

附加信息

我已阅读KOMA-Script 网站(仅限德语​​)将有一个新的命令\letterlastpage版本 3.19.然后你可以简单地使用

\renewcommand\pagemark{\usekomafont{pagenumber}%
  page \thepage{} of \letterlastpage}

答案2

玩了一会儿之后esdd 的解决方案我决定采取以下措施(因为我正在定义自己的页脚):

\newcounter{Letter}
\AtBeginLetter{\stepcounter{Letter}}
\AtEndLetter{\label{lastpage\theLetter}}
\setkomavar{firstfoot}{\thepage/\pageref*{lastpage\theLetter}}
\setkomavar{nextfoot}{\usekomavar{firstfoot}}

这将打印1/3在三页信件的第一页上,等等。

以下稍微复杂一些的代码仅X/Y当总页数(Y)大于 1 时才在页脚中打印。

\newcounter{Letter}
\AtBeginLetter{\stepcounter{Letter}}
\AtEndLetter{\label{lastpage\theLetter}}

\AtBeginLetter{%
\ifnumcomp{\getpagerefnumber{lastpage\theLetter}}{>}{1}{%
\setkomavar{firstfoot}{\thepage/\pageref*{lastpage\theLetter}%
}{%
\setkomavar{firstfoot}{}}}%
}
\setkomavar{nextfoot}{\usekomavar{firstfoot}}

相关内容