diff options
Diffstat (limited to 'Master/texmf-dist/fonts/source/public/kixfont/kix.mf')
-rw-r--r-- | Master/texmf-dist/fonts/source/public/kixfont/kix.mf | 121 |
1 files changed, 121 insertions, 0 deletions
diff --git a/Master/texmf-dist/fonts/source/public/kixfont/kix.mf b/Master/texmf-dist/fonts/source/public/kixfont/kix.mf new file mode 100644 index 00000000000..8ac60382909 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/kixfont/kix.mf @@ -0,0 +1,121 @@ +% KIX, a font for typesetting snail mail zipcodes. +% +% The KIX code is a barcodish format used to encode country codes, zip codes +% and street numbers in a machine-readable format. If printed below the +% address line on bulk mailings, a discount can be obtained. +% +% This font is according to the Dutch specifications. The sizes are +% optimal for printing on a printer with a resolution which is a multiple +% of 150dpi. This optimisation means that the sizes in the TFM file for +% this font match almost exactly on an integer number of pixels. +% +% Install this font in your TeX distribution and update any distro caches. +% Include this file with \font\kix=kix and use it to format properly coded +% KIX-information, for instance {\kix 1234AB56} for zipcode 1234AB and street +% number 56. For more information on the data to encode in KIX, please refer +% to the following site in Dutch: +% http://www.tpgpostbusiness.nl/kix/ +% KIX is also used in a few other countries, but not worldwide. +% +% Metafont scripting by Rick van Rein, KIX-knowledge from Ivo Terhorst. +% +% Available for any purpose, no warranties. + + +mode_setup; +font_identifier "kix"; + + +% The bar in the code is barw# wide, spaces are #spcw wide +% The sync portion is synch# high, plus additional stickh# to either side +barw# := 0.508mm#; +spcw# := 0.677mm#; +synch# := 1.27mm#; +stickh# := 2.08mm#; + +define_pixels (barw, spcw, synch, stickh); + + +% Character dimensions: +% wd, ht, dp + +wd# := 4 * (barw# + spcw#); +ht# := synch# + stickh# + 2mm#; +dp# := stickh#; + +define_pixels (wd, ht, dp) + + +% Routine to start a character definition + +def defchar (expr ch) = + beginchar (ch, wd#, ht#, dp#); + x := 0; +enddef; + +% Routine to draw a sync alone + +def sync = + fill (x,0)--(x+barw,0)--(x+barw,synch)--(x,synch)--cycle; + x := x + barw + spcw +enddef; + +% Routine to draw a stick down + +def down = + fill (x,-stickh)--(x+barw,-stickh)--(x+barw,synch)--(x,synch)--cycle; + x := x + barw + spcw +enddef; + +% Routine to draw a stick up + +def up = + fill (x,0)--(x+barw,0)--(x+barw,synch+stickh)--(x,synch+stickh)--cycle; + x := x + barw + spcw +enddef; + +% Routine to draw a long line + +def updown = + fill (x,-stickh)--(x+barw,-stickh)--(x+barw,synch+stickh)--(x,synch+stickh)--cycle; + x := x + barw + spcw +enddef; + +defchar ("1"); sync; down; up; updown; endchar; +defchar ("2"); sync; down; updown; up; endchar; +defchar ("3"); down; sync; up; updown; endchar; +defchar ("4"); down; sync; updown; up; endchar; +defchar ("5"); down; down; up; up; endchar; +defchar ("6"); sync; up; down; updown; endchar; +defchar ("7"); sync; updown; sync; updown; endchar; +defchar ("8"); sync; updown; down; up; endchar; +defchar ("9"); down; up; sync; updown; endchar; +defchar ("0"); sync; sync; updown; updown; endchar; +defchar ("A"); down; up; down; up; endchar; +defchar ("B"); down; updown; sync; up; endchar; +defchar ("C"); sync; up; updown; down; endchar; +defchar ("D"); sync; updown; up; down; endchar; +defchar ("E"); sync; updown; updown; sync; endchar; +defchar ("F"); down; up; up; down; endchar; +defchar ("G"); down; up; updown; sync; endchar; +defchar ("H"); down; updown; up; sync; endchar; +defchar ("I"); up; sync; down; updown; endchar; +defchar ("J"); up; down; sync; updown; endchar; +defchar ("K"); up; down; down; up; endchar; +defchar ("L"); updown; sync; sync; updown; endchar; +defchar ("M"); updown; sync; down; up; endchar; +defchar ("N"); updown; down; sync; up; endchar; +defchar ("O"); up; sync; updown; down; endchar; +defchar ("P"); up; down; up; down; endchar; +defchar ("Q"); up; down; updown; sync; endchar; +defchar ("R"); updown; sync; up; down; endchar; +defchar ("S"); updown; sync; updown; sync; endchar; +defchar ("T"); updown; down; up; sync; endchar; +defchar ("U"); up; up; down; down; endchar; +defchar ("V"); up; updown; sync; down; endchar; +defchar ("W"); up; updown; down; sync; endchar; +defchar ("X"); updown; up; sync; down; endchar; +defchar ("Y"); updown; up; down; sync; endchar; +defchar ("Z"); updown; updown; sync; sync; endchar; + +end |