% This is kix.sty
% By Sander R.M. Stoks <sanders (at) stoks (dot) nl>
% (c) 1998   17 SEP 1998
% License: LPPLv1 or later.
% Implements KIX codes as used by the Dutch PTT for bulk mail
% addressing. ("Royal Mail 4 State Code")
% "KIX" is a registered trade mark of PTT Post Holdings B.V.
%
% Usage: {\kix 1234AB123}.
% Note: Only caps please.
%
% Example:
%
%   Sander Stoks\\
%   Heyendaalseweg 127 E2-08\\
%   6525 AJ \textsc{Nijmegen}\\[2mm]
%   {\kix 6525AJ127XE2X08}
%
\newlength{\kixwidth}%
\newlength{\kixspace}%
\newlength{\kixsyncheight}%
\newlength{\kixheight}%
\newlength{\kixbase}%
\newlength{\kixlheight}%
\setlength{\kixwidth}{0.505mm plus 0.125mm minus 0.125mm}%
\setlength{\kixspace}{0.505mm plus 0.125mm minus 0.105mm}%
\setlength{\kixsyncheight}{1.27mm plus 0.25mm minus 0.25mm}%
\setlength{\kixheight}{3.15mm plus 0.53mm minus 0.53mm}%
\setlength{\kixbase}{\kixsyncheight}\addtolength{\kixbase}{-\kixheight}%
\setlength{\kixlheight}{\kixheight}%
\addtolength{\kixlheight}{\kixheight}%
\addtolength{\kixlheight}{-\kixsyncheight}%
\newcommand{\kixsync}{\rule{\kixwidth}{\kixsyncheight}\kern\kixwidth}%
\newcommand{\kixup}{\rule{\kixwidth}{\kixheight}\kern\kixwidth}%
\newcommand{\kixdown}{\rule[\kixbase]{\kixwidth}{\kixheight}\kern\kixwidth}%
\newcommand{\kixlong}{\rule[\kixbase]{\kixwidth}{\kixlheight}\kern\kixwidth}%
\begingroup
   \catcode`\1=\active
   \catcode`\2=\active
   \catcode`\3=\active
   \catcode`\4=\active
   \catcode`\5=\active
   \catcode`\6=\active
   \catcode`\7=\active
   \catcode`\8=\active
   \catcode`\9=\active
   \catcode`\0=\active
   \catcode`\A=\active
   \catcode`\B=\active
   \catcode`\C=\active
   \catcode`\D=\active
   \catcode`\E=\active
   \catcode`\F=\active
   \catcode`\G=\active
   \catcode`\H=\active
   \catcode`\I=\active
   \catcode`\J=\active
   \catcode`\K=\active
   \catcode`\L=\active
   \catcode`\M=\active
   \catcode`\N=\active
   \catcode`\O=\active
   \catcode`\P=\active
   \catcode`\Q=\active
   \catcode`\R=\active
   \catcode`\S=\active
   \catcode`\T=\active
   \catcode`\U=\active
   \catcode`\V=\active
   \catcode`\W=\active
   \catcode`\X=\active
   \catcode`\Y=\active
   \catcode`\Z=\active
   \gdef\kix{%
      \def\s{\kixsync}%
      \def\u{\kixup}%
      \def\d{\kixdown}%
      \def\l{\kixlong}%
      \catcode`\1=\active \def1{\s\d\u\l}%
      \catcode`\2=\active \def2{\s\d\l\u}%
      \catcode`\3=\active \def3{\d\s\u\l}%
      \catcode`\4=\active \def4{\d\s\l\u}%
      \catcode`\5=\active \def5{\d\d\u\u}%
      \catcode`\6=\active \def6{\s\u\d\l}%
      \catcode`\7=\active \def7{\s\l\s\l}%
      \catcode`\8=\active \def8{\s\l\d\u}%
      \catcode`\9=\active \def9{\d\u\s\l}%
      \catcode`\0=\active \def0{\s\s\l\l}%
      \catcode`\A=\active \defA{\d\u\d\u}%
      \catcode`\B=\active \defB{\d\l\s\u}%
      \catcode`\C=\active \defC{\s\u\l\d}%
      \catcode`\D=\active \defD{\s\l\u\d}%
      \catcode`\E=\active \defE{\s\l\l\s}%
      \catcode`\F=\active \defF{\d\u\u\d}%
      \catcode`\G=\active \defG{\d\u\l\s}%
      \catcode`\H=\active \defH{\d\l\u\s}%
      \catcode`\I=\active \defI{\u\s\d\l}%
      \catcode`\J=\active \defJ{\u\d\s\l}%
      \catcode`\K=\active \defK{\u\d\d\u}%
      \catcode`\L=\active \defL{\l\s\s\l}%
      \catcode`\M=\active \defM{\l\s\d\u}%
      \catcode`\N=\active \defN{\l\d\s\u}%
      \catcode`\O=\active \defO{\u\s\l\d}%
      \catcode`\P=\active \defP{\u\d\u\d}%
      \catcode`\Q=\active \defQ{\u\d\l\s}%
      \catcode`\R=\active \defR{\l\s\u\d}%
      \catcode`\S=\active \defS{\l\s\l\s}%
      \catcode`\T=\active \defT{\l\d\u\s}%
      \catcode`\U=\active \defU{\u\u\d\d}%
      \catcode`\V=\active \defV{\u\l\s\d}%
      \catcode`\W=\active \defW{\u\l\d\s}%
      \catcode`\X=\active \defX{\l\u\s\d}%
      \catcode`\Y=\active \defY{\l\u\d\s}%
      \catcode`\Z=\active \defZ{\l\l\s\s}%
}%
\endgroup
