2 %% This is file `envlab.sty',
3 %% generated with the docstrip utility.
5 %% The original source files were:
7 %% envlab.dtx (with options: `package')
11 %% For the copyright see the source file.
13 %% Any modified versions of this file must be renamed
14 %% with new filenames distinct from envlab.sty.
16 %% For distribution of the original source see the terms
17 %% for copying and modification in the file envlab.dtx.
19 %% This generated file may be distributed as long as the
20 %% original source files, as listed above, are part of the
21 %% same distribution. (The sources need not necessarily be
22 %% in the same archive or directory.)
23 \ProvidesPackage{envlab}
24 [1997/07/16 v1.2 Envelopes and Labels]
26 %% Copyright Boris Veytsman 1996, 1997
30 %% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
31 %% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
32 %% Digits \0\1\2\3\4\5\6\7\8\9
33 %% Exclamation \! Double quote \" Hash (number) \#
34 %% Dollar \$ Percent \% Ampersand \&
35 %% Acute accent \' Left paren \( Right paren \)
36 %% Asterisk \* Plus \+ Comma \,
37 %% Minus \- Point \. Solidus \/
38 %% Colon \: Semicolon \; Less than \<
39 %% Equals \= Greater than \> Question mark \?
40 %% Commercial at \@ Left bracket \[ Backslash \\
41 %% Right bracket \] Circumflex \^ Underscore \_
42 %% Grave accent \` Left brace \{ Vertical bar \|
43 %% Right brace \} Tilde \~}
44 %% \changes{v1.2}{1996/07/16}{Updated User Guide}
45 \NeedsTeXFormat{LaTeX2e}
47 \PackageError{envlab}%
48 {Envlab is used outside of \MessageBreak%
49 a letter-compatible documentclass}%
50 {You are trying to use Envelopes & Labels\MessageBreak%
51 package, but your documentclass does not\MessageBreak%
52 understand address formatting commands.\MessageBreak%
53 Try standard document class letter\MessageBreak}}
56 {Envelopes & Labels package: found makelabels...\MessageBreak%
57 Seems everything is OK. Good luck.}}
58 \@ifundefined{makelabels}{\envlab@oops}{\envlab@ok}
63 \newif\if@rotateenvelopes
65 \newif\if@printreturnaddress
66 \@printreturnaddresstrue
67 \newcount\@envelopeposition
68 \@envelopeposition=0\relax
73 \newtoks\PSEnvelopeTray
74 \PSEnvelopeTray={/otherenvelopetray }
76 \newif\if@alwaysbarcodes
79 \newif\if@EL@redefine@opening
80 \@EL@redefine@openingfalse
81 \newif\if@capitalizeaddress
82 \@capitalizeaddresstrue
83 \newlength{\EnvelopeWidth}
84 \newlength{\EnvelopeHeight}
85 \newlength{\EnvelopeTopMargin}
86 \newlength{\EnvelopeLeftMargin}
87 \setlength{\EnvelopeLeftMargin}{0pt}
88 \newlength{\LabelWidth}
89 \newlength{\LabelHeight}
90 \newlength{\LabelTopMargin}
91 \newlength{\LabelLeftMargin}
92 \newlength{\LabelRightMargin}
93 \newcounter{LabelMaxCol}
94 \newcounter{LabelMaxRow}
95 \newlength{\FromAddressTopMargin}
96 \newlength{\FromAddressLeftMargin}
97 \newlength{\FromAddressHeight}
98 \newlength{\FromAddressWidth}
99 \newlength{\ToAddressTopMargin}
100 \newlength{\ToAddressLeftMargin}
101 \newlength{\ToAddressWidth}
102 \DeclareRobustCommand{\SetEnvelope}[3][0pt]{%
105 \setlength{\EnvelopeTopMargin}{#1}%
106 \setlength{\EnvelopeWidth}{#2}%
107 \setlength{\EnvelopeHeight}{#3}%
108 \setlength{\FromAddressTopMargin}{0.5in}%
109 \setlength{\FromAddressLeftMargin}{0.5in}%
110 \setlength{\FromAddressHeight}{0.33\EnvelopeHeight}%
111 \setlength{\FromAddressWidth}{0.5\EnvelopeWidth}%
112 \setlength{\ToAddressTopMargin}{0.5in}%
113 \setlength{\ToAddressLeftMargin}{0.5in}%
114 \setlength{\ToAddressWidth}{3in}}
115 \DeclareRobustCommand{\SetLabel}[7]{%
118 \setlength{\LabelWidth}{#1}%
119 \setlength{\LabelHeight}{#2}%
120 \setlength{\LabelTopMargin}{#3}%
121 \setlength{\LabelLeftMargin}{#4}%
122 \setlength{\LabelRightMargin}{#5}%
123 \setcounter{LabelMaxCol}{#6}%
124 \setcounter{LabelMaxRow}{#7}%
125 \setlength{\ToAddressTopMargin}{0.1in}%
126 \setlength{\ToAddressLeftMargin}{0.2in}%
127 \setlength{\ToAddressWidth}{\LabelWidth}%
128 \addtolength{\ToAddressWidth}{-\ToAddressLeftMargin}%
129 \addtolength{\ToAddressWidth}{-\LabelRightMargin}}
130 \DeclareRobustCommand{\SetBigLabel}[7]{%
133 \setlength{\LabelWidth}{#1}%
134 \setlength{\LabelHeight}{#2}%
135 \setlength{\LabelTopMargin}{#3}%
136 \setlength{\LabelLeftMargin}{#4}%
137 \setlength{\LabelRightMargin}{#5}%
138 \setcounter{LabelMaxCol}{#6}%
139 \setcounter{LabelMaxRow}{#7}%
140 \setlength{\FromAddressTopMargin}{0.0in}%
141 \setlength{\FromAddressLeftMargin}{0.5in}%
142 \setlength{\FromAddressHeight}{0.33\LabelHeight}%
143 \setlength{\ToAddressTopMargin}{0.1in}%
144 \setlength{\ToAddressLeftMargin}{0.5in}%
145 \setlength{\ToAddressWidth}{\LabelWidth}%
146 \addtolength{\ToAddressWidth}{-\ToAddressLeftMargin}%
147 \addtolength{\ToAddressWidth}{-\LabelRightMargin}%
148 \setlength{\FromAddressWidth}{\ToAddressWidth}}
149 \DeclareOption{businessenvelope}{\SetEnvelope{9.5in}{4.125in}%
150 \PSEnvelopeTray={/com10envelopetray }}
151 \DeclareOption{executiveenvelope}{\SetEnvelope{7.5in}{3.875in}%
152 \PSEnvelopeTray={/monarcenvelopetray }}
153 \DeclareOption{bookletenvelope}{\SetEnvelope{10.5in}{7.5in}}
154 \DeclareOption{personalenvelope}{\SetEnvelope{6.5in}{3.625in}}
155 \DeclareOption{c6envelope}{\SetEnvelope{162mm}{114mm}}
156 \DeclareOption{c65envelope}{\SetEnvelope{224mm}{114mm}}
157 \DeclareOption{c5envelope}{\SetEnvelope{229mm}{162mm}%
158 \PSEnvelopeTray={/162x229cenvelopetray }}
159 \DeclareOption{dlenvelope}{\SetEnvelope{220mm}{110mm}%
160 \PSEnvelopeTray={/dlenvelopetray }}
161 \DeclareOption{avery5160label}{%
162 \SetLabel{2.75in}{1in}{0.5in}{0.19in}{0.12in}{3}{10}}
163 \DeclareOption{avery5161label}{%
164 \SetLabel{4.19in}{1in}{0.5in}{0.16in}{0.19in}{2}{10}}
165 \DeclareOption{avery5162label}{%
166 \SetLabel{4.19in}{1.33in}{0.83in}{0.16in}{0.19in}{2}{7}}
167 \DeclareOption{avery5163label}{%
168 \SetLabel{4.19in}{2in}{0.5in}{0.16in}{0.19in}{2}{5}}
169 \DeclareOption{avery5164label}{%
170 \SetLabel{4.19in}{3.33in}{0.5in}{0.16in}{0.19in}{2}{3}}
171 \DeclareOption{herma4625label}{%
172 \SetLabel{105mm}{42.3mm}{0mm}{5mm}{5mm}{2}{7}}
173 \DeclareOption{avery5262label}{%
174 \SetLabel{110mm}{34mm}{21mm}{4mm}{5mm}{2}{7}}
175 \DeclareOption{avery5163biglabel}{%
176 \SetBigLabel{4.19in}{2in}{0.5in}{0.16in}{0.19in}{2}{5}%
177 \setlength{\ToAddressTopMargin}{0.1in}}%
178 \DeclareOption{avery5164biglabel}{%
179 \SetBigLabel{4.19in}{3.33in}{0.5in}{0.16in}{0.19in}{2}{3}}%
180 \DeclareOption{rotateenvelopes}{\@rotateenvelopestrue}
181 \DeclareOption{norotateenvelopes}{\@rotateenvelopesfalse}
182 \DeclareOption{centerenvelopes}{\@envelopeposition=0\relax}
183 \DeclareOption{leftenvelopes}{\@envelopeposition=1\relax}
184 \DeclareOption{rightenvelopes}{\@envelopeposition=2\relax}
185 \DeclareOption{customenvelopes}{\@envelopeposition=3\relax}
186 \DeclareOption{printbarcodes}{\@barcodestrue}
187 \DeclareOption{noprintbarcodes}{\@barcodesfalse\@alwaysbarcodesfalse}
188 \DeclareOption{alwaysbarcodes}{\@alwaysbarcodestrue\@barcodestrue}
189 \DeclareOption{noalwaysbarcodes}{\@alwaysbarcodesfalse}
190 \DeclareOption{capaddress}{\@capitalizeaddresstrue}
191 \DeclareOption{nocapaddress}{\@capitalizeaddressfalse}
192 \DeclareOption{printreturnaddress}{\@printreturnaddresstrue}
193 \DeclareOption{noprintreturnaddress}{\@printreturnaddressfalse}
194 \DeclareOption{pswait}{\@pswaittrue\@psautotrayfalse}
195 \DeclareOption{nopswait}{\@pswaitfalse}
196 \DeclareOption{psautotray}{\@psautotraytrue\@pswaitfalse}
197 \DeclareOption{nopsautotray}{\@psautotrayfalse}
198 \DeclareOption{re}{\@EL@redefine@openingtrue}
199 \DeclareOption{nore}{\@EL@redefine@openingfalse}
200 \DeclareOption*{\PassOptionsToPackage{\CurrentOption}{graphics}}
201 \ExecuteOptions{businessenvelope,rotateenvelopes,centerenvelopes}
202 \ExecuteOptions{printbarcodes,capaddress}
203 \ExecuteOptions{nopswait,printreturnaddress,nopsautotray,nore}
204 \InputIfFileExists{envlab.cfg}{%
205 \typeout{Loading configuration file envlab.cfg}}{%
206 \typeout{Configuration file envlab.cfg is not found}}
208 \IfFileExists{graphics.sty}{%
209 \RequirePackage{graphics}}{%
210 \PackageWarning{envlab}{%
211 You don't have the graphics package!\MessageBreak
212 Probably you will not be able to print\MessageBreak
213 envelopes sidewise. \MessageBreak}}
214 \def\@beginlabelshook{\relax}
215 \def\@beginlabelpagehook{\relax}
216 \def\AtBeginLabels{\g@addto@macro\@beginlabelshook}
217 \def\AtBeginLabelPage{\g@addto@macro\@beginlabelpagehook}
218 \def\PSwait{\special{ps: clear grestore @manualfeed 0 0 bop}}
220 \special{ps:clear grestore
221 statusdict begin false setduplexmode
223 \the\PSEnvelopeTray end 0 0 bop }}
225 \AtBeginLabels{\PSwait}%
228 \AtBeginLabels{\PSautotray}%
231 \newcounter{LabelCountCol}
232 \newcounter{LabelCountRow}
233 \newcounter{LabelOffsetCol}
234 \newcounter{LabelOffsetRow}
235 \setcounter{LabelOffsetCol}{1}
236 \setcounter{LabelOffsetRow}{1}
237 \DeclareRobustCommand{\FirstLabel}[2]{%
238 \setcounter{LabelOffsetRow}{#1}%
239 \setcounter{LabelOffsetCol}{#2}}
240 \def\@toaddressfont{%
241 \ifcase\@ptsize \normalsize\or\small\fi%
242 \rmfamily\selectfont}
243 \def\@fromaddressfont{%
244 \ifcase\@ptsize \normalsize\or\small\or\footnotesize\fi%
246 \def\returnaddress{\fromaddress}
250 \setlength{\topmargin}{-1.0in}%
252 \addtolength{\topmargin}{\EnvelopeTopMargin}%
253 \else \addtolength{\topmargin}{\LabelTopMargin}%
255 \setlength{\headheight}{0pt}%
256 \setlength{\headsep}{0pt}%
257 \setlength{\footskip}{0pt}%
258 \setlength{\textheight}{200in}%
259 \setlength\paperheight{\textheight}%
260 \global\vsize=200in\relax%
261 \addtolength{\textheight}{-\topmargin}%
262 \addtolength{\textheight}{-1.0in}%
263 \setlength{\oddsidemargin}{-1.0in}%
266 \addtolength{\oddsidemargin}{\LabelLeftMargin}%
268 \setlength{\evensidemargin}{\oddsidemargin}%
269 \setlength{\textwidth}{20in}%
275 \ifcase\the\@envelopeposition%
276 \setlength{\EnvelopeLeftMargin}{\paperwidth}%
278 \addtolength{\EnvelopeLeftMargin}{-\EnvelopeHeight}%
280 \addtolength{\EnvelopeLeftMargin}{-\EnvelopeWidth}%
282 \setlength{\EnvelopeLeftMargin}{0.5\EnvelopeLeftMargin}%
284 \setlength{\EnvelopeLeftMargin}{0pt}%
286 \setlength{\EnvelopeLeftMargin}{\paperwidth}%
288 \addtolength{\EnvelopeLeftMargin}{-\EnvelopeHeight}%
290 \addtolength{\EnvelopeLeftMargin}{-\EnvelopeWidth}%
296 \setcounter{LabelCountCol}{\theLabelOffsetCol}%
297 \setcounter{LabelCountRow}{\theLabelOffsetRow}%
298 \ifnum\theLabelOffsetRow>1%
300 \loop \vspace*{\LabelHeight}%
301 \addtocounter{LabelOffsetRow}{-1} \ifnum\theLabelOffsetRow>1%
304 \ifnum\theLabelOffsetCol>1%
305 \loop \hspace*{\LabelWidth}\nolinebreak%
306 \addtocounter{LabelOffsetCol}{-1} \ifnum\theLabelOffsetCol>1%
312 \xspaceskip 0pt\relax%
317 \setlength\hfuzz{5in}%
318 \setlength\vfuzz{5in}%
321 \@beginlabelpagehook%
323 \newcommand{\PrintReturnAddress}[1]{%
324 \vspace*{\FromAddressTopMargin}
325 \null\hspace{\FromAddressLeftMargin}
326 \parbox[t][\FromAddressHeight]{\FromAddressWidth}%
327 {\@fromaddressfont \lineskip=1pt
328 \if@printreturnaddress #1\else\relax\fi}}
329 \newcommand{\PrintAddress}[1]{%
330 \vspace*{\ToAddressTopMargin}
332 \null\hspace*{\ToAddressLeftMargin}
333 \parbox[t]{\ToAddressWidth}{%
335 \if@barcodes \PrintBarCode{#1} \fi
337 \if@capitalizeaddress \@make@capitalize{#1} \else #1 \fi}}
338 \newcommand{\PrintLabel}[1]{%
339 \parbox[t][\LabelHeight]{\LabelWidth}{%
341 \newcommand{\PrintBigLabel}[2]{%
342 \begin{minipage}[t][\LabelHeight]{\LabelWidth}%
347 \PrintReturnAddress{#1}\\%
348 \rule{\ToAddressWidth}{0.1pt}%
352 \newcommand{\PrintEnvelope}[2]{%
353 \begin{minipage}[t][\EnvelopeHeight]{\EnvelopeWidth}%
357 \PrintReturnAddress{#1}\\%
362 \newcommand{\@PrintEnvelope}[2]{%
363 \if@rotateenvelopes\rotatebox{90}{\PrintEnvelope{#1}{#2}}%
364 \else\PrintEnvelope{#1}{#2}%
366 \renewcommand{\mlabel}[2]{\ignorespaces%
367 \spaceskip 0pt\relax%
368 \xspaceskip 0pt\relax%
371 \hspace*{\EnvelopeLeftMargin}%
372 \@PrintEnvelope{#1}{#2}%
374 \@beginlabelpagehook%
377 \ifnum\theLabelCountCol>\theLabelMaxCol%
379 \stepcounter{LabelCountRow}%
380 \setcounter{LabelCountCol}{1}%
382 \ifnum\theLabelCountRow>\theLabelMaxRow%
383 \vfill\eject\@beginlabelpagehook%
384 \setcounter{LabelCountRow}{1}%
385 \setcounter{LabelCountCol}{1}%
388 \PrintBigLabel{#1}{#2}%
392 \ignorespaces\nolinebreak%
393 \stepcounter{LabelCountCol}%
395 \newcount\@numreturnlabels
396 \newcommand{\printreturnlabels}[2]{%
398 \def\@toaddressfont{\@fromaddressfont}
399 \@capitalizeaddressfalse
402 \loop \mlabel{\relax}{#2} \advance\@numreturnlabels by -1
403 \ifnum\@numreturnlabels>0\repeat}
404 \newcommand{\PrintBarCode}[1]{%
408 \newcount\@zipcodesum
409 \newif\if@zipcodefound
410 \long\def\@finishzipcode#1{}
411 \long\def\@firstzipcode#1{%
413 \@zipcodesum=#1\relax
416 \long\def\@continuezipcode#1{%
417 \@zipcode=\expandafter{\the\@zipcode#1}
418 \advance\@zipcodesum by #1
420 \long\def\@dashzipcode#1{\@zipcodeloop}
423 \afterassignment\@zipcodeloop\let\EL@temp= }
424 \long\def\@abortzipcode#1{%
427 \def\@zipcodeloop{\futurelet\EL@temp\@zipcodeloop@}
429 \ifx \@endaddress\EL@temp \def\EL@tempa{\@finishzipcode} \else
430 \ifx 0\EL@temp \if@zipcodefound \def\EL@tempa{\@continuezipcode}
431 \else \def\EL@tempa{\@firstzipcode} \fi \else
432 \ifx 1\EL@temp \if@zipcodefound \def\EL@tempa{\@continuezipcode}
433 \else \def\EL@tempa{\@firstzipcode} \fi \else
434 \ifx 2\EL@temp \if@zipcodefound \def\EL@tempa{\@continuezipcode}
435 \else \def\EL@tempa{\@firstzipcode} \fi \else
436 \ifx 3\EL@temp \if@zipcodefound \def\EL@tempa{\@continuezipcode}
437 \else \def\EL@tempa{\@firstzipcode} \fi \else
438 \ifx 4\EL@temp \if@zipcodefound \def\EL@tempa{\@continuezipcode}
439 \else \def\EL@tempa{\@firstzipcode} \fi \else
440 \ifx 5\EL@temp \if@zipcodefound \def\EL@tempa{\@continuezipcode}
441 \else \def\EL@tempa{\@firstzipcode} \fi \else
442 \ifx 6\EL@temp \if@zipcodefound \def\EL@tempa{\@continuezipcode}
443 \else \def\EL@tempa{\@firstzipcode} \fi \else
444 \ifx 7\EL@temp \if@zipcodefound \def\EL@tempa{\@continuezipcode}
445 \else \def\EL@tempa{\@firstzipcode} \fi \else
446 \ifx 8\EL@temp \if@zipcodefound \def\EL@tempa{\@continuezipcode}
447 \else \def\EL@tempa{\@firstzipcode} \fi \else
448 \ifx 9\EL@temp \if@zipcodefound \def\EL@tempa{\@continuezipcode}
449 \else \def\EL@tempa{\@firstzipcode} \fi \else
450 \ifx -\EL@temp \if@zipcodefound \def\EL@tempa{\@dashzipcode}
451 \else \def\EL@tempa{\@abortzipcode} \fi \else
452 \ifx \@sptoken\EL@temp \def\EL@tempa{\@spacezipcode} \else
453 \def\EL@tempa{\@abortzipcode}
454 \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
456 \long\def\@extractbarcode#1{%
458 \@zipcodeloop#1\@endaddress
459 \if@alwaysbarcodes \@zipcodefoundtrue \fi
461 \ifnum\the\@zipcodesum>0
462 \loop \advance \@zipcodesum by -10 \ifnum\the\@zipcodesum>0
465 \multiply\@zipcodesum by -1
467 \newlength{\@barcodewidth}
468 \newlength{\@barcodeLheight}
469 \newlength{\@barcodeSheight}
470 \newlength{\@barcodeskip}
471 \setlength{\@barcodewidth}{0.020in}
472 \setlength{\@barcodeLheight}{0.125in}
473 \setlength{\@barcodeSheight}{0.050in}
474 \setlength{\@barcodeskip}{0.026in}
475 \DeclareRobustCommand{\@barL}{%
476 \rule{\@barcodewidth}{\@barcodeLheight}\hspace{\@barcodeskip}}
477 \DeclareRobustCommand{\@barS}{%
478 \rule{\@barcodewidth}{\@barcodeSheight}\hspace{\@barcodeskip}}
479 \def\@printonezip#1{%
480 \ifx1#1\@barS\@barS\@barS\@barL\@barL\else
481 \ifx2#1\@barS\@barS\@barL\@barS\@barL\else
482 \ifx3#1\@barS\@barS\@barL\@barL\@barS\else
483 \ifx4#1\@barS\@barL\@barS\@barS\@barL\else
484 \ifx5#1\@barS\@barL\@barS\@barL\@barS\else
485 \ifx6#1\@barS\@barL\@barL\@barS\@barS\else
486 \ifx7#1\@barL\@barS\@barS\@barS\@barL\else
487 \ifx8#1\@barL\@barS\@barS\@barL\@barS\else
488 \ifx9#1\@barL\@barS\@barL\@barS\@barS\else
489 \ifx0#1\@barL\@barL\@barS\@barS\@barS\else
490 \ifx S#1\def\EL@tempa{\relax}%
491 \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
497 \def\EL@tempa{\@printonezip}%
498 \expandafter\EL@tempa\the\@zipcode S%
499 \def\EL@tempa{\@printonezip}%
500 \expandafter\EL@tempa\the\@zipcodesum S%
505 \long\def\@finishaddrcap#1{}
506 \long\def\@dotcommaaddrcap#1{%
508 \long\def\@newlineaddrcap#1{%
509 \@addr@cap=\expandafter{\the\@addr@cap #1}
511 \long\def\@bgroupaddrcap#1{%
512 \@addr@cap=\expandafter{\the\@addr@cap {\MakeUppercase{#1}}}
515 \@addr@cap=\expandafter{\the\@addr@cap\hspace{0.6em}}
516 \afterassignment\@addrcaploop\let\EL@temp= }
517 \def\@otheraddrcap#1{%
518 \@addr@cap=\expandafter{\the\@addr@cap%
519 \MakeUppercase{#1}\kern1pt\relax}
521 \def\@addrcaploop{\futurelet\EL@temp\@addrcaploop@}
523 \ifx \@endaddress\EL@temp \def\EL@tempa{\@finishaddrcap} \else
524 \ifx .\EL@temp \def\EL@tempa{\@dotcommaaddrcap} \else
525 \ifx ,\EL@temp \def\EL@tempa{\@dotcommaaddrcap} \else
526 \ifx \voidb@x\EL@temp \def\EL@tempa{\@dotcommaaddrcap} \else
527 \ifx \unhbox\EL@temp \def\EL@tempa{\@dotcommaaddrcap} \else
528 \ifx \\\EL@temp \def\EL@tempa{\@newlineaddrcap} \else
529 \ifx \bgroup\EL@temp \def\EL@tempa{\@bgroupaddrcap} \else
530 \ifx \@sptoken\EL@temp \def\EL@tempa{\@spaceaddrcap} \else
531 \def\EL@tempa{\@otheraddrcap}
532 \fi\fi\fi\fi\fi\fi\fi\fi
534 \long\def\@make@capitalize#1{%
536 \@addrcaploop#1\@endaddress
538 \let\@@mlabel=\@gobbletwo
539 \AtEndDocument{\let\@@mlabel=\@mlabel}
540 \def\suppresslabels{\if@filesw\immediate\write\@auxout{%
541 \string\@suppresslabels}\fi}
542 \def\@suppresslabels{\let\@mlabel=\@gobbletwo}
543 \def\resumelabels{\if@filesw\immediate\write\@auxout{%
544 \string\@resumelabels}\fi}
545 \def\@resumelabels{\let\@mlabel=\@@mlabel}
546 \def\suppressonelabel{\if@filesw\immediate\write\@auxout{%
547 \string\@suppressonelabel}\fi}
548 \def\@suppressonelabel{\let\@old@mlabel=\@mlabel%
550 \let\@mlabel=\@old@mlabel%
552 \def\printonelabel{\if@filesw\immediate\write\@auxout{%
553 \string\@printonelabel}\fi}
554 \def\@printonelabel{\let\@old@mlabel=\@mlabel%
556 \let\@mlabel=\@old@mlabel%
558 \def\ChangeEnvelope{\@ifstar{\@ChangeEnvelopeStar}{\@ChangeEnvelope}}
559 \newcommand\@ChangeEnvelopeStar[3][0pt]{%
560 \if@filesw\immediate\write\@auxout{%
561 \string\@SetEnvelope[#1]{#2}{#3}}%
563 \newcommand\@ChangeEnvelope[3][0pt]{%
564 \if@filesw\immediate\write\@auxout{%
565 \string\@SetEnvelope[#1]{#2}{#3}}
566 \immediate\write\@auxout{\string\@startlabels}
568 \def\@SetEnvelope[#1]#2#3{}
569 \AtEndDocument{\let\@SetEnvelope=\SetEnvelope}
570 \def\ChangeLabel{\@ifstar{\@ChangeLabelStar}{\@ChangeLabel}}
571 \newcommand\@ChangeLabelStar[7]{%
572 \if@filesw\immediate\write\@auxout{%
573 \string\@SetLabel{#1}{#2}{#3}{#4}{#5}{#6}{#7}}%
575 \newcommand\@ChangeLabel[7]{%
576 \if@filesw\immediate\write\@auxout{%
577 \string\@SetLabel{#1}{#2}{#3}{#4}{#5}{#6}{#7}}
578 \immediate\write\@auxout{\string\@startlabels}
580 \def\@SetLabel#1#2#3#4#5#6#7{}
581 \AtEndDocument{\let\@SetLabel=\SetLabel}
582 \def\ChangeBigLabel{\@ifstar{\@ChangeBigLabelStar}{\@ChangeBigLabel}}
583 \newcommand\@ChangeBigLabelStar[7]{%
584 \if@filesw\immediate\write\@auxout{%
585 \string\@SetBigLabel{#1}{#2}{#3}{#4}{#5}{#6}{#7}}%
587 \newcommand\@ChangeBigLabel[7]{%
588 \if@filesw\immediate\write\@auxout{%
589 \string\@SetBigLabel{#1}{#2}{#3}{#4}{#5}{#6}{#7}}
590 \immediate\write\@auxout{\string\@startlabels}
592 \def\@SetBigLabel#1#2#3#4#5#6#7{}
593 \AtEndDocument{\let\@SetBigLabel=\SetBigLabel}
594 \if@EL@redefine@opening
595 \newcommand*{\re}[1]{\def\recontents{#1}}%
597 \renewcommand*{\opening}[1]{\ifx\@empty\fromaddress
598 \thispagestyle{firstpage}%
599 {\raggedleft\@date\par}%
601 \thispagestyle{empty}%
602 {\raggedleft\begin{tabular}{l}\ignorespaces
603 \fromaddress \\*[2\parskip]%
604 \@date \end{tabular}\par}%
607 {\raggedright \toname \\ \toaddress \par}%
608 \ifx\@empty\recontents\relax
610 {\raggedright \ReName \recontents \par}%
617 %% End of file `envlab.sty'.