1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
|
% make-env.tex
%
% J. Daniel Smith
% 12 January 1990
%
% Print an address on an envelope according to strict USPS standards.
%
% Usage:
% Place the address in a file with an extension of .adr. The
% address is set with the \setaddress command, and \\ is used to
% break lines. The \setattn command can be used if desired to
% direct the letter to someones attention.
%
% Since this file is also ususally included into a letter, it is
% also an easy spot to set other things that pertain to the letter
% itself such as \firstname, etc.
%
% These macros use the "landscape" \special of dvips. The exact
% syntax for other drivers might be slightly different.
%
% Bugs:
% The \fontdimen parameters aren't restored after the address is
% set, so the Attn: line also uses the strict USPS spacing which I
% don't think is really necesary. The paremeters should be reset so
% that the Attn: line will look better.
%
% various macros for setting up the information to appear on the
% envelope. These are place in the lettermac.tex file so that the
% same .adr file can be used with both letters and envelopes. The
% ones of primary importance for envelopes are \setaddress and \attn
%
\input lettermac
\input zip % ZIP code barcodes. This *must* be after lettermac.tex
%
% Hacks to get the size of the envelope right. These are for a legal
% size envelope.
\hsize=9.5true in\hoffset=0.5true in
\vsize=4.125true in\voffset=1.1875true in
%
\special{landscape} % envelopes are printed in landscape mode
%
% The USPS has very specific guidelines about printing the address on
% an envelope. Of course, they will take just about anything, but
% they like it if the address is in ALL CAPS with no punctuation.
% 10 point Helvetica (cmss) is one of the recommended fonts with a
% 14 point baseline. If you want to override the default setting, the
% \envfont can be specified in the .adr file.
\font\envfont=cmss10 at 10.95true pt % cmss10 is smaller than 10pt Helvetica
%\font\envfont=helv at 10true pt % PostScript font Helvetica
\baselineskip=14true pt
%
% Remove punctuation. This is done by making the punctuation
% characters to be TeX's ignored characters.
% Hopefully setting TeX's font parameters right will increase the
% interword spaces to the 1em that the USPS likes.
%
% the \catcodes have to be set before the address is read in, since once it is
% read in, the \catcodes are fixed and can not be changed.
\catcode`.=9 \catcode`,=9 % 9 = ignored character
% read in the address
\getaddress{Letter address file}
% restore the \catcodes changed above
\catcode`\.=12 \catcode`\,=12
%
% uppercase the address (from page 331 of the TeXbook) to make it the
% way the USPS likes it. \Xaddress where the lettermac macros store
% the address when it is read in.
\def\next#1\endname{\uppercase{\def\Xaddress{#1}}}
\expandafter\next\Xaddress\endname
%
%% for testing....
%%\vbox to \vsize{\hrule
%% \centerline{top}
%% \vfil
%% \centerline{\vrule left\hfill right\vrule}
%% \vfil
%% \centerline{bottom}
%% \hrule}
%%\eject\end
%
% put the address on the envelope in the correct font.
% The USPS wants the address in a box that extends from 5/8" from the
% bottom of the envelope to 2 1/4" from the bottom. This works out to
% be 1.625 inches total. With the font and baseline skip defined above,
% this is more than 8 lines (9 is too many).
%
% \leftline{\returnaddress} % some type of return address
\ \vfil % fill up with blank space
\vbox to 2.25true in{
\vbox to 1.625true in{\envfont\leftskip=4.5true in
% the \fontdimen parameters need to be changed
% here in case a different \envfont has been
% loaded.
\fontdimen6\envfont=10true pt % size of an em
\fontdimen2\envfont=10true pt % interword space
\fontdimen3\envfont=1true pt % interword stretch
\fontdimen4\envfont=1true pt % interword shrink
\fontdimen7\envfont=0pt % extra space
% the address
\address\vfil}
%
% The USPS wants the start of the barcode no further than 4" from the
% right edge of the envelope and no less than than 3 1/4". It
% prefers between 3 7/8" and 4". In addition it must be 1/4" up
% from the bottom (plus/minus 1/16"). This 0.25" is provided by the
% Attn: line below.
\vfil
\rightline{\hbox to 4true in{\box\zipbarcode\hfil}}
%
% The \attn line if used. This is also set in the \envfont so
% that everything will be consistant (except perhaps the return
% address, but that should follow the format of the letterhead.)
% This is put in a 0.25in \vbox, so that the barcode will be up 0.25
% in from the bottom of the envelope.
\vbox to 0.25true in{\vfil\leftline{\envfont\enspace\Xattn}\vskip0.1true in}
} % \vbox to 2.25true in
\eject\end % not \bye, it has a \vfill in it
|