% ====================================================================== % PP.lco % Copyright (c) Markus Kohm, 2009 % % This work may be distributed and/or modified under the conditions of % the LaTeX Project Public License, version 1.3b of the license. % The latest version of this license is in % http://www.latex-project.org/lppl.txt % and version 1.3b or later is part of all distributions of LaTeX % version 2005/12/01 or later and of this work. % % This work has the LPPL maintenance status "author-maintained". % % The Current Maintainer and author of this work is Markus Kohm. % % This work consists of the file `PP.lco' only. % ====================================================================== % PP.lco % Copyright (c) Markus Kohm, 2009 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3b, verteilt und/oder veraendert werden. % Die neuste Version dieser Lizenz ist % http://www.latex-project.org/lppl.txt % und Version 1.3b ist Teil aller Verteilungen von LaTeX % Version 2005/12/01 oder spaeter und dieses Werks. % % Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained" % (allein durch den Autor verwaltet). % % Der Aktuelle Verwalter und Autor dieses Werkes ist Markus Kohm. % % Dieses Werk besteht nur aus der Dateo `PP.lco'. % ====================================================================== % % For docu see at the end of the file (after \endinput) % \ProvidesFile{PP.lco}[2009/02/11 v0.1 ALPHA port pay'e for scrlttr2] \@ifclasslater{scrlttr2}{2009/01/24}{% \LCOWarning{PP}{This file was made to be used with scrlttr2\MessageBreak versions from 2.96 till 3.02b only.\MessageBreak You are using:\MessageBreak \space\csname ver@scrlttr2.cls\endcsname\MessageBreak which may or may not result in problems\MessageBreak using PP.lco\@gobble}% }{% \@ifclasslater{scrlttr2}{2006/07/31}{}{% \LCOWarning{PP}{This file was made to be used with scrlttr2\MessageBreak versions from 2.96 till 3.02b only.\MessageBreak You are using:\MessageBreak \space\csname ver@scrlttr2.cls\endcsname\MessageBreak which will result in problems\MessageBreak using PP.lco\@gobble}% }% } \newcommand*{\PP@mode}{1}% \KOMA@ncmdkey{PP}[explicite]{PP@mode}{% {no}{0},{off}{0},{false}{0},% {explicite}{1},% {backgroundimage}{2},% {addressimage}{3}% } \newcommand*{\PP@priority}{0}% \KOMA@ncmdkey{priority}[A]{PP@priority}{% {no}{0},{off}{0},{false}{0},% {B}{1},{b}{1},% {economy}{1},{Economy}{1},{ECONOMAY}{1},% {B-ECONOMY}{1},{B-Economy}{1},{b-economy}{1},% {A}{2},{a}{2},% {priority}{2},{Priority}{2},{PRIORITY}{2},% {A-PRIORITY}{2},{A-Priority}{2},{a-priority}{2}% }% \newkomavar[CH\,--\,]{ZipCode} \newkomavar{PPcode} \newkomavar{PPdatamatrix} \newkomavar{PPimage} \@setplength{toaddrindent}{8mm} \newcommand*{\@PP@addrfield}{} \let\@PP@addrfield\@addrfield \renewcommand*{\@addrfield}{% \ifcase\PP@mode \@PP@addrfield \else \PP@addrfield \fi } \newcommand*{\PP@addrfield}{% \if@afield \begingroup% \if@baddr % Hier könnte man noch darüber informieren, dass die Rücksendeadresse % bei PP nicht verwendet wird. \fi \ifkomavarempty{specialmail}{}{% % Hier könnte man noch darüber informaieren, dass die Versandtart bei % PP nur "A-Priority" oder "B-Economy" erlaubt. }% \endgroup% \move@topt\vskip\useplength{toaddrvpos}% \vb@t@z{{\setlength{\parfillskip}{\z@ \@plus 1fil}% \rlap{\move@topl \setlengthtoplength{\@tempskipa}{toaddrhpos}% \ifdim \@tempskipa<\z@ \addtolength{\@tempskipa}{\paperwidth}% \addtolengthplength[-]{\@tempskipa}{toaddrwidth}% \fi \hskip\@tempskipa \@savevbox{\useplength{toaddrheight}}{\hsize\useplength{toaddrwidth}% \ifnum\PP@mode=\@ne % explicite \vskip 1mm% Aus dem Beispiel \noindent\expandafter\hskip\useplength{toaddrindent}% \fbox{% \vbox to \dimexpr 7mm-2\fboxsep\relax{% \setlength{\parindent}{0pt}% \hsize \dimexpr 42mm-2\fboxsep\relax \setbox\@tempboxa\hbox{% {\fontsize{7mm}{7mm}\sffamily\bfseries P.P.}\hskip 2mm% }% \dp\@tempboxa\z@ \setlength{\@tempdima}{\hsize}% \addtolength{\@tempdima}{-\wd\@tempboxa}% \hbox{\box\@tempboxa \vbox to \dimexpr 7mm-2\fboxsep\relax{\vss\hsize\@tempdima \raggedright \fontsize{8pt}{9pt}\sffamily \usekomavar*{ZipCode}\usekomavar{ZipCode}\unskip\strut\\ \usekomavar{place}\unskip\strut% \hfill }% }% \vss }% }% \hskip 1mm% Aus dem Beispiel \mbox{% \vbox to 7mm {% \addtolength{\hsize}{-43mm}% \addtolengthplength[-2]{\hsize}{toaddrindent}% \setlength{\parindent}{0pt}% \fontsize{8pt}{9pt}\sffamily \hfill\usekomavar{PPcode} \vss \ifcase \PP@priority \or \fontsize{9mm}{9mm}\sffamily\bfseries B% \fontsize{10pt}{10pt}\selectfont -ECONOMY% \or \fontsize{9mm}{9mm}\sffamily\bfseries A% \fontsize{10pt}{10pt}\selectfont -PRIORITY% \fi \hss \vskip-\dp\strutbox \vss }% }% \vskip 1mm% Aus dem Beispiel \vskip-\ht\strutbox \noindent\hskip\useplength{toaddrindent}% \hrulefill% \hskip\useplength{toaddrindent}% \vbox to\z@{\hsize\z@ \vskip 9mm% Aus dem Beispiel \llap{\usekomavar{PPdatamatrix}\hskip\useplength{toaddrindent}}% \vss }% \else% background image or addressimage \vskip 1mm% Aus dem Beispiel \noindent\expandafter\hskip\useplength{toaddrindent}% \vbox to 7mm {% \addtolengthplength[-2]{\hsize}{toaddrindent}% \setlength{\parindent}{0pt}% \usekomavar{PPimage}% \vss }% \vskip 1mm \vskip\dp\strutbox \fi \vskip 4mm% Aus dem Beispiel \ifnum \PP@mode=\thr@@ % addressimage \else \vfil% \noindent\hskip\useplength{toaddrindent}% \setlength{\@tempdima}{\useplength{toaddrwidth}}% \addtolengthplength[-2]{\@tempdima}{toaddrindent}% \vbox{\hsize\@tempdima \ifkomavarempty{PPdatamatrix}{}{% \addtolength{\hsize}{-2mm}% \settowidth\@tempdima{\usekomavar{PPdatamatrix}}% \addtolength{\hsize}{-\@tempdima}% }% \raggedright \usekomafont{addressee}{% \usekomafont{toname}{\usekomavar{toname}\\}% \usekomafont{toaddress}{\usekomavar{toaddress}}}}% \vskip 5mm% Aus dem Beispiel \fi \vss\null}% {address field}{toaddrheight}% {\begin{letter} or you\MessageBreak have to define a smaller special purpose using\MessageBreak \string\specialmail}% }}}% \vskip-\useplength{toaddrvpos}\move@frompt \else \typeout{Address: No}% \fi } \endinput % % end of `PP.lco' % % Minidocu: % ========= Diese lco-Datei ermöglicht die Verwendung der P.P.-Frankierung, wie sie beispielsweise von der Schweizer Post angeboten wird. Die Implementierung folgt dabei und . PP.lco setzt die Pseudo-Länge »toaddindent« auf den Standardwert 8 mm. Um die P.P.-Funktionalität zur Verfügung zu stellen existieren folgende neue Optionen, die jedoch erst _nach_ dem Laden von PP.lco und ausschließlich mit \KOMAoptions und \KOMAoption gesetzt werden können: PP entspricht »PP=explicite« PP=false (alternativ auch »off« oder »no«) Es wird der normale Adressmodus ohne P.P. verwendet. PP=explicite Es wird im P.P.-Frankiermodus gearbeitet. Dabei werden außer der Anschrit folgende Variablen verwendet: ZipCode - Die Postleitzahl, die im P.P.-Feld gesetzt werden soll. Der PLZ wir ihr Bezeichner vorangestellt. Der Bezeichner ist derzeit mit »CH\,--\,« vordefiniert. Er kann mit »\setkomavar*{ZipCode}{foo}« geändert werden. place - Der Ort, der im P.P.-Feld gesetzt werden soll (und zur PLZ passen sollte!). PPcode - Der P.P.-Code, der rechts neben dem P.P.-Feld gesetzt wird. PPdatamatrix - Die DataMatrix (ECC200), die rechts neben der Empfängeradresse zu verwenden ist. Hier kann beispielsweise mit »\includegraphics{foo}« eine externe Abbildung der DataMatrix geladen werden. In diesem Fall muss natürlich das Paket graphics oder graphicx geladen sein. Darüber hinaus wird in diesem Fall zusätzliche die Option »priority« ausgewertet: priority=false (alternativ auch »off« oder »no«) Es wird keine Priorität verwendet. priority=A Es wird die Priorität »A-PRIORITY« verwendet. priority=B Es wird die Priorität »B-ECONONY« verwendet. PP=backgroundimage Es wird im P.P.-Frankiermodus gearbeitet. Dabei wird davon ausgegangen, dass sämtliche P.P.-Angaben über die Variable »PPimage« gesetzt werden. Die Variable kann beispielsweise mit »\setkomavar{PPimage}{\includegraphics{foo}}« gesetzt werden, um eine externe Abbildung zu laden. Die Empfängeranschrift selbst wird wie bei »PP=explicite« gesetzt. PP=addressimage Entspricht »PP=backgroundimage«, allerdings wird davon ausgegangen, dass »PPimage« auch die Anschrift enthält. Deshalb wird keine Anschrift mehr gesetzt. Zu »PP=backgroundimage« und »PP=addressimage« siehe auch . Minimalbeispiel: \documentclass[SN,PP]{scrlttr2} \usepackage{xcolor} \usepackage[T1]{fontenc} \usepackage{lmodern} \KOMAoptions{priority=A} \setkomavar{PPimage}{{\color{yellow}\rule{74mm}{34mm}}}% Nur als Beispiel \setkomavar{ZipCode}{3030} \setkomavar{place}{Bern} \setkomavar{PPcode}{123456789} \setkomavar{PPdatamatrix}{\rule{10.8mm}{10.8mm}}% Nur als Beispiel \usepackage[ngerman]{babel} \usepackage{blindtext} \begin{document} \begin{letter}{Herr\\Muster\\Musterstrasse 1\\9999 Muster} \opening{Hi,} \setkomavar{toname}{Herr Muster} \blindtext \closing{Tschuess} \end{letter} \end{document}