Advertisement
Guest User

newlfm.cls

a guest
Oct 10th, 2017
1,260
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 107.90 KB | None | 0 0
  1. %%
  2. %% This is file `newlfm.cls',
  3. %% generated with the docstrip utility.
  4. %%
  5. %% The original source files were:
  6. %%
  7. %% newlfm.dtx (with options: `package')
  8. %%
  9. %% \iffalse meta-comment
  10. %% \CharacterTable
  11. %% {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
  12. %% 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
  13. %% Digits \0\1\2\3\4\5\6\7\8\9
  14. %% Exclamation \! Double quote \" Hash (number) \#
  15. %% Dollar \$ Percent \% Ampersand \&
  16. %% Acute accent \' Left paren \( Right paren \)
  17. %% Asterisk \* Plus \+ Comma \,
  18. %% Minus \- Point \. Solidus \/
  19. %% Colon \: Semicolon \; Less than \<
  20. %% Equals \= Greater than \> Question mark \?
  21. %% Commercial at \@ Left bracket \[ Backslash \\
  22. %% Right bracket \] Circumflex \^ Underscore \_
  23. %% Grave accent \` Left brace \{ Vertical bar \|
  24. %% Right brace \} Tilde \~}
  25. \NeedsTeXFormat{LaTeX2e}[1996/06/01]
  26. \ProvidesClass{newlfm}
  27. [2009/04/10 v9.4
  28. Letter-Fax-Memo LaTeX Document Class]
  29.  
  30. \def\ifta{0}\def\iftb{0}%
  31. \def\txa#1{\ifthenelse{\equal{\ifta}{1}}{\typeout{#1}}{}}%
  32. \def\txb#1{}%\ifthenelse{\iftb=1}{\typeout{#1}}{}}%
  33. \RequirePackage{keyval}%
  34. \RequirePackage{ifthen}[1997/11/02]%
  35. \RequirePackage{ifpdf}%
  36. \RequirePackage{setdim}%
  37. \RequirePackage{fancyhdr}%
  38. \RequirePackage{eso-pic}%
  39. \RequirePackage{setspace}%
  40. \RequirePackage{lastpage}%
  41. \@ifundefined{ps@@empty}{%
  42. \ClassError{newlfm}{Version of fancyhdr.sty is not current. \MessageBreak Please obtain%
  43. a recent copy of fancyhdr.sty (Version 1.99d or later) from CTAN.} {Go to CTAN and%
  44. download the current version of fancyhdr.sty}}{}%
  45. \RequirePackage{calc}[1997/11/11]%
  46. \RequirePackage{graphicx}[1997/06/09]%
  47. \RequirePackage{rotating}[1997/06/09]%
  48. \newlength{\@addr@fr@sk@b}\setlength{\@addr@fr@sk@b}{0in}%
  49. \newlength{\@addr@fr@sk@a}\setlength{\@addr@fr@sk@a}{0in}%
  50. \newlength{\@addr@to@sk@b}\setlength{\@addr@to@sk@b}{0in}%
  51. \newlength{\@addr@to@sk@a}\setlength{\@addr@to@sk@a}{0in}%
  52. \newlength{\@blka@b}\setlength{\@blka@b}{0in}%
  53. \newlength{\@blka@a}\setlength{\@blka@a}{0in}%
  54. \newlength{\@blkb@b}\setlength{\@blkb@b}{0in}%
  55. \newlength{\@blkb@a}\setlength{\@blkb@a}{0in}%
  56. \newlength{\@blkc@b}\setlength{\@blkc@b}{0in}%
  57. \newlength{\@blkc@a}\setlength{\@blkc@a}{0in}%
  58. \newlength{\@caption@skip@above}\setlength{\@caption@skip@above}{0in}%
  59. \newlength{\@caption@skip@below}\setlength{\@caption@skip@below}{0in}%
  60. \newlength{\@cello@h}\setlength{\@cello@h}{1in}%
  61. \newlength{\@cello@w}\setlength{\@cello@w}{3in}%
  62. \newlength{\@cello@d}\setlength{\@cello@d}{2.5in}%
  63. \newlength{\@cello@l}\setlength{\@cello@l}{1in}%
  64. \newlength{\@dt@sk@b}\setlength{\@dt@sk@b}{0in}%
  65. \newlength{\@dt@sk@a}\setlength{\@dt@sk@a}{0in}%
  66. \newlength{\@Dth@H@L}\setlength{\@Dth@H@L}{0in}%
  67. \newlength{\@Dth@H@C}\setlength{\@Dth@H@C}{0in}%
  68. \newlength{\@Dth@H@R}\setlength{\@Dth@H@R}{0in}%
  69. \newlength{\@Dth@F@L}\setlength{\@Dth@F@L}{0in}%
  70. \newlength{\@Dth@F@C}\setlength{\@Dth@F@C}{0in}%
  71. \newlength{\@Dth@F@R}\setlength{\@Dth@F@R}{0in}%
  72. \newlength{\@Dth@h@l}\setlength{\@Dth@h@l}{0in}%
  73. \newlength{\@Dth@h@c}\setlength{\@Dth@h@c}{0in}%
  74. \newlength{\@Dth@h@r}\setlength{\@Dth@h@r}{0in}%
  75. \newlength{\@Dth@f@l}\setlength{\@Dth@f@l}{0in}%
  76. \newlength{\@Dth@f@c}\setlength{\@Dth@f@c}{0in}%
  77. \newlength{\@Dth@f@r}\setlength{\@Dth@f@r}{0in}%
  78. \newlength{\@greet@to@sk@b}\setlength{\@greet@to@sk@b}{0in}%
  79. \newlength{\@greet@to@sk@a}\setlength{\@greet@to@sk@a}{0in}%
  80. \newlength{\@Hgt@Head}\setlength{\@Hgt@Head}{0in}%
  81. \newlength{\@Hrw}\setlength{\@Hrw}{1pt}%
  82. \newlength{\@hrw}\setlength{\@hrw}{1pt}%
  83. \newlength{\@extr@hor}\setlength{\@extr@hor}{0pt}%
  84. \newlength{\@Frw}\setlength{\@Frw}{1pt}%
  85. \newlength{\@frw}\setlength{\@frw}{1pt}%
  86. \newlength{\@Hgt@Foot}\setlength{\@Hgt@Foot}{0in}%
  87. \newlength{\@Hgt@head}\setlength{\@Hgt@head}{0in}%
  88. \newlength{\@Hgt@foot}\setlength{\@Hgt@foot}{0in}%
  89. \newlength{\@Hgt@H@L}\setlength{\@Hgt@H@L}{0in}%
  90. \newlength{\@Hgt@H@C}\setlength{\@Hgt@H@C}{0in}%
  91. \newlength{\@Hgt@H@R}\setlength{\@Hgt@H@R}{0in}%
  92. \newlength{\@Hgt@F@L}\setlength{\@Hgt@F@L}{0in}%
  93. \newlength{\@Hgt@F@C}\setlength{\@Hgt@F@C}{0in}%
  94. \newlength{\@Hgt@F@R}\setlength{\@Hgt@F@R}{0in}%
  95. \newlength{\@Hgt@h@l}\setlength{\@Hgt@h@l}{0in}%
  96. \newlength{\@Hgt@h@c}\setlength{\@Hgt@h@c}{0in}%
  97. \newlength{\@Hgt@h@r}\setlength{\@Hgt@h@r}{0in}%
  98. \newlength{\@Hgt@f@l}\setlength{\@Hgt@f@l}{0in}%
  99. \newlength{\@Hgt@f@c}\setlength{\@Hgt@f@c}{0in}%
  100. \newlength{\@Hgt@f@r}\setlength{\@Hgt@f@r}{0in}%
  101. \newlength{\@lab@bl}\setlength{\@lab@bl}{0in}%
  102. \newlength{\@lab@pl}\setlength{\@lab@pl}{0in}%
  103. \newlength{\@lab@pw}\setlength{\@lab@pw}{0in}%
  104. \newlength{\@lab@bh}\setlength{\@lab@bh}{0in}%
  105. \newlength{\@lab@bw}\setlength{\@lab@bw}{0in}%
  106. \newlength{\@lab@th}\setlength{\@lab@th}{0in}%
  107. \newlength{\@lab@lm}\setlength{\@lab@lm}{0in}%
  108. \newlength{\@marg@lt}\setlength{\@marg@lt}{1in}%
  109. \newlength{\@marg@rt}\setlength{\@marg@rt}{1in}%
  110. \newlength{\@marg@tp}\setlength{\@marg@tp}{1in}%
  111. \newlength{\@marg@bt}\setlength{\@marg@bt}{1in}%
  112. \newlength{\@marg@tp@a}\setlength{\@marg@tp@a}{0in}%
  113. \newlength{\@marg@bt@a}\setlength{\@marg@bt@a}{0in}%
  114. \newlength{\@marg@bt@b}\setlength{\@marg@bt@b}{0in}%
  115. \newlength{\@marg@tp@b}\setlength{\@marg@tp@b}{0in}%
  116. \newlength{\@marg@tp@s}\setlength{\@marg@tp@s}{0in}%
  117. \newlength{\@marg@lt@r}\setlength{\@marg@lt@r}{0in}%
  118. \newlength{\@marg@lt@l}\setlength{\@marg@lt@l}{0in}%
  119. \newlength{\@marg@rt@r}\setlength{\@marg@rt@r}{0in}%
  120. \newlength{\@marg@rt@l}\setlength{\@marg@rt@l}{0in}%
  121. \newlength{\@marg@lt@tp@d}\setlength{\@marg@lt@tp@d}{0pt}%
  122. \newlength{\@marg@rt@tp@d}\setlength{\@marg@rt@tp@d}{0pt}%
  123. \newlength{\@Min@Hgt@Head}\setlength{\@Min@Hgt@Head}{0in}%
  124. \newlength{\@Min@Hgt@head}\setlength{\@Min@Hgt@head}{0in}%
  125. \newlength{\@Min@Hgt@Foot}\setlength{\@Min@Hgt@Foot}{0in}%
  126. \newlength{\@Min@Hgt@foot}\setlength{\@Min@Hgt@foot}{0in}%
  127. \newlength{\@Min@Hgt@Right}\setlength{\@Min@Hgt@Right}{0in}%
  128. \newlength{\@Min@Hgt@right}\setlength{\@Min@Hgt@right}{0in}%
  129. \newlength{\@Min@Hgt@Left}\setlength{\@Min@Hgt@Left}{0in}%
  130. \newlength{\@Min@Hgt@left}\setlength{\@Min@Hgt@left}{0in}%
  131. \newlength{\@Plg}\setlength{\@Plg}{0in}%
  132. \newlength{\@Pwd}\setlength{\@Pwd}{0in}%
  133. \newlength{\@plg}\setlength{\@plg}{0in}%
  134. \newlength{\@pwd}\setlength{\@pwd}{0in}%
  135. \newlength{\@post@sig@sp@a}\setlength{\@post@sig@sp@a}{0in}%
  136. \newlength{\@post@sig@sp@b}\setlength{\@post@sig@sp@b}{0in}%
  137. \newlength{\@pre@memo@sp}\setlength{\@pre@memo@sp}{0in}%
  138. \newlength{\@post@memo@sp}\setlength{\@post@memo@sp}{0in}%
  139. \newlength{\@sig@sp}\setlength{\@sig@sp}{0in}%
  140. \newlength{\@text@width}\setlength{\@text@width}{0in}%
  141. \newlength{\@sig@sk@a}\setlength{\@sig@sk@a}{5pt}%
  142. \newlength{\@sig@sk@b}\setlength{\@sig@sk@b}{5pt}%
  143. \newlength{\@sig@sk@c}\setlength{\@sig@sk@c}{5pt}%
  144. \newlength{\@sig@sk@r}\setlength{\@sig@sk@r}{5pt}%
  145. \newlength{\@cls@sk@a}\setlength{\@cls@sk@a}{1em}%
  146. \newlength{\@cls@sk@b}\setlength{\@cls@sk@b}{1em}%
  147. \newlength{\@text@height}\setlength{\@text@height}{0in}%
  148. \newlength{\@unpr@tp}\setlength{\@unpr@tp}{0in}%
  149. \newlength{\@unpr@bm}\setlength{\@unpr@bm}{0in}%
  150. \newlength{\@unpr@rt}\setlength{\@unpr@rt}{0in}%
  151. \newlength{\@unpr@lt}\setlength{\@unpr@lt}{0in}%
  152. \newlength{\@util}\setlength{\@util}{0in}%
  153. \newlength{\@utila}\setlength{\@utila}{0in}%
  154. \newlength{\@utilb}\setlength{\@utilb}{0in}%
  155. \newlength{\@utilc}\setlength{\@utilc}{0in}%
  156. \newlength{\@utild}\setlength{\@utild}{0in}%
  157. \newlength{\@utile}\setlength{\@utile}{0in}%
  158. \newlength{\@utilf}\setlength{\@utilf}{0in}%
  159. \newlength{\@utilg}\setlength{\@utilg}{0in}%
  160. \newlength{\@utilh}\setlength{\@utilh}{0in}%
  161. \newlength{\@utili}\setlength{\@utili}{0in}%
  162. \newlength{\@utilj}\setlength{\@utilj}{0in}%
  163. \newlength{\@utilk}\setlength{\@utilk}{0in}%
  164. \newlength{\@utill}\setlength{\@utill}{0in}%
  165. \newlength{\@xda}\setlength{\@xda}{0in}%
  166. \newlength{\@xdb}\setlength{\@xdb}{0in}%
  167. \newlength{\@xdc}\setlength{\@xdc}{0in}%
  168. \newlength{\@xdd}\setlength{\@xdd}{0in}%
  169. \newlength{\@xde}\setlength{\@xde}{0in}%
  170. \newlength{\@xdf}\setlength{\@xdf}{0in}%
  171. \newlength{\@xdg}\setlength{\@xdg}{0in}%
  172. \newlength{\@xdh}\setlength{\@xdh}{0in}%
  173. \newlength{\@xdi}\setlength{\@xdi}{0in}%
  174. \txa{newlength done}%
  175. \newsavebox{\@sig@box@a}\newsavebox{\b@addr@fr}\newsavebox{\b@addr@to}%
  176. \newsavebox{\@x@c}\newsavebox{\@x@l}\newsavebox{\@x@r}%
  177. \newsavebox{\fba}\newsavebox{\adrfr}\newsavebox{\adrto}%
  178. \newsavebox{\@sig@box@b}\newsavebox{\@sig@box@c}\newsavebox{\@sig@box@d}%
  179. \newsavebox{\@sig@box@e}\newsavebox{\@sig@box@f}\newsavebox{\@sig@box@g}%
  180. \newsavebox{\@sig@box@h}\newsavebox{\@sig@box@i}\newsavebox{\@sig@box@j}%
  181. \newsavebox{\@rest@ltr}\newsavebox{\@resta@ltr}\newsavebox{\@restb@ltr}%
  182. \newsavebox{\@restc@ltr}\newsavebox{\@restd@ltr}\newsavebox{\@reste@ltr}%
  183. \txa{newsavebox done}%
  184. \newcounter{@c@pos}\newcounter{figure}\newcounter{table}%
  185. \newcounter{@sig@tot}\newcounter{@lab@tot@row}%
  186. \newcounter{@lab@tot@col}\newcounter{@lab@cnt@row}\newcounter{@lab@cnt@col}%
  187. \newcount\@nlfm@addr%
  188. \newcount\@nlfm@util%
  189. \newcount\@nlfm@uta%
  190. \newcount\@nlfm@utb%
  191. \txa{newcount done}%
  192. \newboolean{@addr@fr@l}%
  193. \newboolean{@addr@fr@p}%
  194. \newboolean{@addr@fr@e}\setboolean{@addr@fr@e}{false}%
  195. \newboolean{@addr@fr@f}\setboolean{@addr@fr@f}{false}%
  196. \newboolean{@addr@fr@t}\setboolean{@addr@fr@t}{false}%
  197. \newboolean{@addr@swtch}\setboolean{@addr@swtch}{true}%
  198. \newboolean{@addr@to@l}%
  199. \newboolean{@addr@to@p}%
  200. \newboolean{@addr@to@f}\setboolean{@addr@to@f}{false}%
  201. \newboolean{@addr@to@e}\setboolean{@addr@to@e}{false}%
  202. \newboolean{@addr@to@t}\setboolean{@addr@to@t}{false}%
  203. \newboolean{@b@h}\setboolean{@b@h}{false}%
  204. \newboolean{@b@f}\setboolean{@b@f}{false}%
  205. \newboolean{@b@r}\setboolean{@b@r}{false}%
  206. \newboolean{@b@l}\setboolean{@b@l}{false}%
  207. \newboolean{@B@h}\setboolean{@B@h}{false}%
  208. \newboolean{@B@f}\setboolean{@B@f}{false}%
  209. \newboolean{@B@r}\setboolean{@B@r}{false}%
  210. \newboolean{@B@l}\setboolean{@B@l}{false}%
  211. \newboolean{@bg@use}\setboolean{@bg@use}{false}%
  212. \newboolean{@Bg@use}\setboolean{@Bg@use}{false}%
  213. \newboolean{@cello@win}\setboolean{@cello@win}{false}%
  214. \newboolean{@cf@use}\setboolean{@cf@use}{false}%
  215. \newboolean{@Ch@use}\setboolean{@Ch@use}{false}%
  216. \newboolean{@Cf@use}\setboolean{@Cf@use}{false}%
  217. \newboolean{@COf@use}\setboolean{@COf@use}{false}%
  218. \newboolean{@CUh@use}\setboolean{@CUh@use}{false}%
  219. \newboolean{@ch@use}\setboolean{@ch@use}{false}%
  220. \newboolean{@do@any}%
  221. \newboolean{@dt@l}\setboolean{@dt@l}{true}%
  222. \newboolean{@dt@c}\setboolean{@dt@c}{false}%
  223. \newboolean{@dt@p}%
  224. \newboolean{@env@open}\setboolean{@env@open}{false}%
  225. \newboolean{@env@close}\setboolean{@env@close}{false}%
  226. \newboolean{@fax@m@run}\setboolean{@fax@m@run}{false}%
  227. \newboolean{@fax@hdr@pg}%
  228. \newboolean{@fax@RA}%
  229. \newboolean{@fax@RU}%
  230. \newboolean{@fax@bla}\setboolean{@fax@bla}{true}%
  231. \newboolean{@fax@blb}\setboolean{@fax@blb}{false}%
  232. \newboolean{@fl}\setboolean{@fl}{true}%
  233. \newboolean{@Fl}\setboolean{@Fl}{true}%
  234. \newboolean{@greet@p}%
  235. \newboolean{@greet@l}%
  236. \newboolean{@hl}\setboolean{@hl}{true}%
  237. \newboolean{@Hl}\setboolean{@Hl}{true}%
  238. \newboolean{@in@tab}%
  239. \newboolean{@in@makeenv}\setboolean{@in@makeenv}{false}%
  240. \newboolean{@l@am}\setboolean{@l@am}{true}%
  241. \newboolean{@l@en}\setboolean{@l@en}{false}%
  242. \newboolean{@l@ge}\setboolean{@l@ge}{false}%
  243. \newboolean{@l@fr}\setboolean{@l@fr}{false}%
  244. \newboolean{@l@ot}\setboolean{@l@ot}{false}%
  245. \newboolean{@l@pi}\setboolean{@l@pi}{false}%
  246. \newboolean{@lab@t}\setboolean{@lab@t}{true}%
  247. \newboolean{@lab@cft}\setboolean{@lab@cft}{false}%
  248. \newboolean{@lab@rft}\setboolean{@lab@rft}{false}%
  249. \newboolean{@Lf@use}\setboolean{@Lf@use}{false}%
  250. \newboolean{@lf@use}\setboolean{@lf@use}{false}%
  251. \newboolean{@Lh@use}\setboolean{@Lh@use}{false}%
  252. \newboolean{@lh@use}\setboolean{@lh@use}{false}%
  253. \newboolean{@LOf@use}\setboolean{@LOf@use}{false}%
  254. \newboolean{@LUh@use}\setboolean{@LUh@use}{false}%
  255. \newboolean{@marg@lt@fl@tp}\setboolean{@marg@lt@fl@tp}{false}%
  256. \newboolean{@marg@rt@fl@tp}\setboolean{@marg@rt@fl@tp}{false}%
  257. \newboolean{@marg@luse}\setboolean{@marg@luse}{false}%
  258. \newboolean{@marg@ruse}\setboolean{@marg@ruse}{false}%
  259. \newboolean{@marg@Luse}\setboolean{@marg@Luse}{false}%
  260. \newboolean{@marg@Ruse}\setboolean{@marg@Ruse}{false}%
  261. \newboolean{@memo@bl}%
  262. \newboolean{@memo@a}%
  263. \newboolean{@memo@b}\setboolean{@memo@b}{false}%
  264. \newboolean{@memo@c}\setboolean{@memo@c}{false}%
  265. \newboolean{@memo@d}\setboolean{@memo@d}{false}%
  266. \newboolean{@memo@e}\setboolean{@memo@e}{true}%
  267. \newboolean{@memo@f}\setboolean{@memo@f}{true}%
  268. \newboolean{@memo@g}\setboolean{@memo@g}{true}%
  269. \newboolean{@memo@h}\setboolean{@memo@h}{false}%
  270. \newboolean{@memo@i}\setboolean{@memo@i}{false}%
  271. \newboolean{@memo@j}\setboolean{@memo@j}{false}%
  272. \newboolean{@memo@k}\setboolean{@memo@k}{false}%
  273. \newboolean{@memo@l}\setboolean{@memo@l}{false}%
  274. \newboolean{@memo@m}\setboolean{@memo@m}{false}%
  275. \newboolean{@memo@n}\setboolean{@memo@n}{false}%
  276. \newboolean{@no@cen}\setboolean{@no@cen}{false}%
  277. \newboolean{@no@spc}\setboolean{@no@spc}{false}%
  278. \newboolean{@rest@l}\setboolean{@rest@l}{false}%
  279. \newboolean{@resta@l}\setboolean{@resta@l}{false}%
  280. \newboolean{@restb@l}\setboolean{@restb@l}{false}%
  281. \newboolean{@restc@l}\setboolean{@restc@l}{false}%
  282. \newboolean{@restd@l}\setboolean{@restd@l}{false}%
  283. \newboolean{@reste@l}\setboolean{@reste@l}{false}%
  284. \newboolean{@ROf@use}\setboolean{@ROf@use}{false}%
  285. \newboolean{@Rf@use}\setboolean{@Rf@use}{false}%
  286. \newboolean{@rf@use}\setboolean{@rf@use}{false}%
  287. \newboolean{@Rh@use}\setboolean{@Rh@use}{false}%
  288. \newboolean{@RUh@use}\setboolean{@RUh@use}{false}%
  289. \newboolean{@rh@use}\setboolean{@rh@use}{false}%
  290. \newboolean{@ov@a}\setboolean{@ov@a}{true}%
  291. \newboolean{@ov@t}\setboolean{@ov@t}{false}%
  292. \newboolean{@ov@l}\setboolean{@ov@l}{false}%
  293. \newboolean{@ov@f}\setboolean{@ov@f}{false}%
  294. \newboolean{@ov@s}\setboolean{@ov@s}{false}%
  295. \newboolean{@pt@regard}\setboolean{@pt@regard}{false}%
  296. \newboolean{@s@b@s}\setboolean{@s@b@s}{false}%
  297. \newboolean{@set@env}\setboolean{@set@env}{false}%
  298. \newboolean{@sig@p}%
  299. \newboolean{@sig@mp}%
  300. \newboolean{@sig@l}\setboolean{@sig@l}{false}%
  301. \newboolean{@sig@c}\setboolean{@sig@c}{false}%
  302. \newboolean{@space@d}\setboolean{@space@d}{true}%
  303. \newboolean{@space@s}\setboolean{@space@s}{false}%
  304. \newboolean{@mult@sig}\setboolean{@mult@sig}{false}%
  305. \newboolean{@use@sig}%
  306. \newboolean{@use@close}%
  307. \newboolean{@use@sig@nm}%
  308. \newboolean{@use@all@fr}%
  309. \newboolean{@use@all@to}%
  310. \newboolean{@use@envlab}\setboolean{@use@envlab}{false}%
  311. \newboolean{@use@water}\setboolean{@use@water}{false}%
  312. \newboolean{@ztila}\newboolean{@ztilb}%
  313. \newboolean{@pr@p}\setboolean{@pr@p}{false}%
  314. \newboolean{@pr@by}%
  315. \txa{newboolean done}%
  316. \def\@d@pos#1{\def\@intd@pos{#1}}%
  317. \def\@t@pos#1{\def\@intt@pos{#1}}%
  318. \def\@f@pos#1{\def\@intf@pos{#1}}%
  319. \def\newlfmParam{\@ifnextchar[%]%
  320. \newlx@i{\newlx@i[]}}%
  321. \def\newlx@i[#1]{{\setkeys{ov}{#1}}}%
  322. \def\Dimens{\@ifnextchar[%]%
  323. \Dimens@i{\Dimens@i[]}}%
  324. \def\Dimens@i[#1]{{\setkeys{ov}{#1}}}%
  325. \def\Language{\@ifnextchar[%]%
  326. \Lang@i{\Lang@i[]}}%
  327. \def\Lang@i[#1]{{\setkeys{ov}{#1}}}%
  328. \def\MemoParam{\@ifnextchar[%]%
  329. \MemoP@i{\MemoP@i[]}}%
  330. \def\MemoP@i[#1]{{\setkeys{ov}{#1}}}%
  331. \def\LetterParam{\@ifnextchar[%]%
  332. \LetrP@i{\LetrP@i[]}}%
  333. \def\LetrP@i[#1]{{\setkeys{ov}{#1}}}%
  334. \def\FAZParam{\@ifnextchar[%]%
  335. \FAXP@i{\FAXP@i[]}}%
  336. \def\FAXP@i[#1]{{\setkeys{ov}{#1}}}%
  337. \def\LetterP#1{\setkeys{ov}{#1}}%
  338. \def\newlfmP#1{\setkeys{ov}{#1}}%
  339. \def\LanguageP#1{\setkeys{ov}{#1}}%
  340. \def\FAXP#1{\setkeys{ov}{#1}}%
  341. \def\DimensP#1{\setkeys{ov}{#1}}%
  342. \def\MemoP#1{\setkeys{ov}{#1}}%
  343. \def\iffixt#1#2{\ifthenelse{\equal{#1}{true}}{\setboolean{#2}{true}}{}}%
  344. \def\iffixf#1#2{\ifthenelse{\equal{#1}{true}}{\setboolean{#2}{false}}{}}%
  345. \def\iffixq#1#2{\ifthenelse{\equal{#1}{true}}{#2}{}}%
  346. \txa{Done with key definitions sections}%
  347. \def\DatePhrase#1{\def\@date@phr{#1}}%
  348. \def\PhrFAXcovp#1{\def\@fax@cover@line{#1}}%
  349. \def\PhrFAXpgcnt#1{\def\@fax@page@count{#1}}%
  350. \def\PhrEmail#1{\def\@email@phr{#1}}%
  351. \def\PhrFax#1{\def\@fax@phr{#1}}%
  352. \def\PhrPager#1{\def\@pager@phr{#1}}%
  353. \def\PhrDocument#1{\def\@doc@phr{#1}}%
  354. \def\PhrPhone#1{\def\@phn@phr{#1}}%
  355. \def\PhrRe#1{\def\@re@phr{#1}}%
  356. \def\PhrSubre#1{\def\@subre@phr{#1}}%
  357. \def\PhrCc#1{\def\@cc@phr{#1}}%
  358. \def\PhrPs#1{\def\@ps@phr{#1}}%
  359. \def\PhrMessage#1{\def\@m@phr{#1}}%
  360. \def\PhrPps#1{\def\@pps@phr{#1}}%
  361. \def\PhrPpps#1{\def\@ppps@phr{#1}}%
  362. \def\PhrEncl#1{\def\@encl@phr{#1}}%
  363. \def\PhrTo#1{\def\@hnto@phr{#1}}%
  364. \def\PhrFrom#1{\def\@hnfr@phr{#1}}%
  365. \def\PhrRegard#1{\def\@regard@phr{#1}}%
  366. \def\PhrContact#1{\def\@contact@phr{#1}}%
  367. \def\PhrRelease#1{\def\@release@phr{#1}}%
  368. \def\PhrMore#1{\def\@more@phr{#1}}%
  369. \def\PhrPRend#1{\def\@PRend@phr{#1}}%
  370. \def\lth{}\def\sig{}\def\adr{}%
  371. \def\letrh#1{\def\@ltr@h{#1}\setboolean{@ov@l}{true}}%
  372. \define@key{ov}{letrh}{\def\@ltr@h{#1}\setboolean{@ov@l}{true}}%
  373. \txa{Done with phr defs}%
  374. \def\waterpage#1{\def\@water@page{#1}\setboolean{@use@water}{true}}%
  375. \define@key{ov}{waterpage}{\def\@water@page{#1}\setboolean{@use@water}{true}}%
  376. \txa{Waterpage}%
  377. \def\Background#1{\def\@Backgrnd{#1}\setboolean{@Bg@use}{true}}%
  378. \txa{Z}%
  379. \define@key{ov}{Background}{\def\@Backgrnd{#1}\setboolean{@Bg@use}{true}}%
  380. \def\background#1{\setboolean{@bg@use}{true}\def\@backgrnd{#1}}%
  381. \define@key{ov}{background}{\setboolean{@bg@use}{true}\def\@backgrnd{#1}}%
  382. \def\@adr@t{}\def\@adr@f{}\def\@ltr@h{}\def\@sig@b{}%
  383. \def\addrt#1{\def\@adr@t{#1}\setboolean{@ov@t}{true}}%
  384. \define@key{ov}{addrt}{\def\@adr@t{#1}\setboolean{@ov@t}{true}}%
  385. \def\addrf#1{\def\@adr@f{#1}\setboolean{@ov@f}{true}}%
  386. \define@key{ov}{addrf}{\def\@adr@f{#1}\setboolean{@ov@f}{true}}%
  387. \def\sigtr#1{\def\@sig@b{#1}\setboolean{@ov@s}{true}}%%
  388. \define@key{ov}{sigtr}{\def\@sig@b{#1}\setboolean{@ov@s}{true}}%
  389. \def\MinHead#1{\setlength{\@Min@Hgt@Head}{#1}}%
  390. \define@key{ov}{MinHead}{\setlength{\@Min@Hgt@Head}{#1}}%
  391. \def\minhead#1{\setlength{\@Min@Hgt@head}{#1}}%
  392. \define@key{ov}{minhead}{\setlength{\@Min@Hgt@head}{#1}}%
  393. \def\MinLeft#1{\setlength{\@Min@Hgt@Left}{#1}}%
  394. \define@key{ov}{MinLeft}{\setlength{\@Min@Hgt@Left}{#1}}%
  395. \def\minleft#1{\setlength{\@Min@Hgt@left}{#1}}%
  396. \define@key{ov}{minleft}{\setlength{\@Min@Hgt@left}{#1}}%
  397. \def\MinFoot#1{\setlength{\@Min@Hgt@Foot}{#1}}%
  398. \define@key{ov}{MinFoot}{\setlength{\@Min@Hgt@Foot}{#1}}%
  399. \def\minfoot#1{\setlength{\@Min@Hgt@foot}{#1}}%
  400. \define@key{ov}{minfoot}{\setlength{\@Min@Hgt@foot}{#1}}%
  401. \def\MinRight#1{\setlength{\@Min@Hgt@Right}{#1}}%
  402. \define@key{ov}{MinRight}{\setlength{\@Min@Hgt@Right}{#1}}%
  403. \def\minright#1{\setlength{\@Min@Hgt@right}{#1}}%
  404. \define@key{ov}{minright}{\setlength{\@Min@Hgt@right}{#1}}%
  405. \def\@def@l{american}%
  406. \def\@am@phr{%
  407. \DatePhrase{Date}%
  408. \PhrFAXcovp{FAX Cover Page}%
  409. \PhrFAXpgcnt{FAX Page Count}%
  410. \PhrFax{FAX}%
  411. \PhrPager{Pager}%
  412. \PhrEmail{E-mail}%
  413. \PhrDocument{Document}%
  414. \PhrPhone{Telephone}%
  415. \PhrRe{Re}%
  416. \PhrSubre{\ensuremath{\mathrm{Re}_2}}%
  417. \PhrCc{cc}%
  418. \PhrPs{Ps}%
  419. \PhrMessage{Message}%
  420. \PhrPps{Pps}%
  421. \PhrPpps{Ppps}%
  422. \PhrEncl{Encl}%
  423. \PhrPager{Page}%
  424. \PhrTo{To}%
  425. \PhrFrom{From}%
  426. \PhrRegard{Regarding}%
  427. \PhrContact{Contact}%
  428. \PhrRelease{For Immediate Release}%
  429. \PhrMore{--- more ---}%
  430. \PhrPRend{\# \# \#}%
  431. }%
  432. \InputIfFileExists{extracd.tex}%
  433. {\typeout{Reading alternative macro definitions from extracd.tex}}%
  434. {\typeout{All language information must be in newlfm.cls}}%
  435. \DeclareOption{french}%
  436. {\def\@def@l{french}\setboolean{@l@fr}{true} \@fr@phr}%
  437. \define@key{ov}{french}[true]%
  438. {\iffixq{#1}{\def\@def@l{french}\setboolean{@l@fr}{true} \@fr@phr}}%
  439. \DeclareOption{german}{\def\@def@l{german}\setboolean{@l@ge}{true} \@gr@phr}%
  440. \define@key{ov}{german}[true]%
  441. {\iffixq{#1}{\def\@def@l{german}\setboolean{@l@ge}{true} \@gr@phr}}%
  442. \DeclareOption{american}%
  443. {\def\@def@l{american}\setboolean{@l@am}{true} \@am@phr}%
  444. \define@key{ov}{american}[true]%
  445. {\iffixq{#1}{\def\@def@l{american}\setboolean{@l@am}{true} \@am@phr}}%
  446. \DeclareOption{english}%
  447. {\def\@def@l{english}\setboolean{@l@en}{true} \@en@phr}%
  448. \define@key{ov}{english}[true]%
  449. {\iffixq{#1}{\def\@def@l{english}\setboolean{@l@en}{true} \@en@phr}}%
  450. \DeclareOption{othlang}%
  451. {\renewco@lgnd{\@def@l}{othlang}\setboolean{@l@ot}{true} \@ot@phr}%
  452. \define@key{ov}{othlang}[true]%
  453. {\iffixq{#1}{\def\@def@l{othlang}\setboolean{@l@ot}{true} \@ot@phr}}%
  454. \DeclareOption{piglatin}%
  455. {\def\@def@l{piglatin}\setboolean{@l@pi}{true} \@pl@phr}%
  456. \define@key{ov}{piglatin}[true]%
  457. {\iffixq{#1}{\def\@def@l{piglatin}\setboolean{@l@pi}{true} \@pl@phr}}%
  458. \define@key{ov}{textwidthsize}{\setlength{\@text@width}{#1}}%
  459. \def\textwidthsize#1{\setlength{\@text@width}{#1}}%
  460. \define@key{ov}{textheightsize}{\setlength{\@text@height}{#1}}%
  461. \def\textheightsize#1{\setlength{\@text@height}{#1}}%
  462. \define@key{ov}{bottommarginskip}{\setlength{\@marg@bt@a}{#1}}%
  463. \def\bottommarginskip#1{\setlength{\@marg@bt@a}{#1}}%
  464. \define@key{ov}{bottommarginskipbelow}{\setlength{\@marg@bt@b}{#1}}%
  465. \def\bottommarginskipbelow#1{\setlength{\@marg@bt@b}{#1}}%
  466. \def\topmarginskip#1{\setlength{\@marg@tp@a}{#1}}%
  467. \define@key{ov}{topmarginskip}{\setlength{\@marg@tp@a}{#1}}%
  468. \def\topmarginsize#1{\setlength{\@marg@tp@s}{#1}}%
  469. \define@key{ov}{topmarginsize}{\setlength{\@marg@tp@s}{#1}}%
  470. \def\headermarginskip#1{\setlength{\@marg@tp@b}{#1}}%
  471. \define@key{ov}{headermarginskip}{\setlength{\@marg@tp@b}{#1}}%
  472. \def\rightmarginsize#1{\setlength{\@marg@rt}{#1}}%
  473. \define@key{ov}{rightmarginsize}{\setlength{\@marg@rt}{#1}}%
  474. \def\leftmarginsize#1{\setlength{\@marg@lt}{#1}}%
  475. \define@key{ov}{leftmarginsize}{\setlength{\@marg@lt}{#1}}%
  476. \def\headermarginsize#1{\setlength{\@marg@tp}{#1}}%
  477. \define@key{ov}{headermarginsize}{\setlength{\@marg@tp}{#1}}%
  478. \def\footermarginsize#1{\setlength{\@marg@bt}{#1}}%
  479. \define@key{ov}{footermarginsize}{\setlength{\@marg@bt}{#1}}%
  480. \def\leftmargintopdist#1%
  481. {\setlength{\@marg@lt@tp@d}{#1}\setboolean{@marg@lt@fl@tp}{true}}%
  482. \define@key{ov}{leftmargintopdist}%
  483. {\setlength{\@marg@lt@tp@d}{#1}\setboolean{@marg@lt@fl@tp}{true}}%
  484. \def\rightmargintopdist#1%
  485. {\setlength{\@marg@rt@tp@d}{#1}\setboolean{@marg@rt@fl@tp}{true}}%
  486. \define@key{ov}{rightmargintopdist}%
  487. {\setlength{\@marg@rt@tp@d}{#1}\setboolean{@marg@rt@fl@tp}{true}}%
  488. \define@key{ov}{leftmarginskipleft}%
  489. {\setlength{\@marg@lt@l}{#1}\setboolean{@marg@lt@fl@tp}{false}}%
  490. \def\leftmarginskipleft#1{\setlength{\@marg@lt@l}{#1}}%
  491. \define@key{ov}{rightmarginskipleft}%
  492. {\setlength{\@marg@rt@l}{#1}\setboolean{@marg@lt@fl@tp}{false}}%
  493. \def\rightmarginskipleft#1{\setlength{\@marg@rt@l}{#1}}%
  494. \def\leftmarginskipright#1{\setlength{\@marg@lt@r}{#1}}%
  495. \define@key{ov}{leftmarginskipright}{\setlength{\@marg@lt@r}{#1}}%
  496. \def\rightmarginskipright#1{\setlength{\@marg@rt@r}{#1}}%
  497. \define@key{ov}{rightmarginskipright}{\setlength{\@marg@rt@r}{#1}}%
  498. \def\dateskipbefore#1{\setlength{\@dt@sk@b}{#1}}%
  499. \define@key{ov}{dateskipbefore}{\setlength{\@dt@sk@b}{#1}}%
  500. \def\dateskipafter#1{\setlength{\@dt@sk@a}{#1}}%
  501. \define@key{ov}{dateskipafter}{\setlength{\@dt@sk@a}{#1}}%
  502. \def\addrfromskipafter#1{\setlength{\@addr@fr@sk@a}{#1}}%
  503. \define@key{ov}{addrfromskipafter}{\setlength{\@addr@fr@sk@a}{#1}}%
  504. \def\addrfromskipbefore#1{\setlength{\@addr@fr@sk@b}{#1}}%
  505. \define@key{ov}{addrfromskipbefore}{\setlength{\@addr@fr@sk@b}{#1}}%
  506. \def\addrtoskipafter#1{\setlength{\@addr@to@sk@a}{#1}}%
  507. \define@key{ov}{addrtoskipafter}{\setlength{\@addr@to@sk@a}{#1}}%
  508. \def\addrtoskipbefore#1{\setlength{\@addr@to@sk@b}{#1}}%
  509. \define@key{ov}{addrtoskipbefore}{\setlength{\@addr@to@sk@b}{#1}}%
  510. \def\greettoskipafter#1{\setlength{\@greet@to@sk@a}{#1}}%
  511. \define@key{ov}{greettoskipafter}{\setlength{\@greet@to@sk@a}{#1}}%
  512. \def\sigskipbefore#1{\setlength{\@sig@sk@b}{#1}}%
  513. \define@key{ov}{sigskipbefore}{\setlength{\@sig@sk@b}{#1}}%
  514. \def\sigskipafter#1{\setlength{\@sig@sk@a}{#1}}%
  515. \define@key{ov}{sigskipafter}{\setlength{\@sig@sk@a}{#1}}%
  516. \def\closeskipbefore#1{\setlength{\@cls@sk@b}{#1}}%
  517. \define@key{ov}{closeskipbefore}{\setlength{\@cls@sk@b}{#1}}%
  518. \def\closeskipafter#1{\setlength{\@cls@sk@a}{#1}}%
  519. \define@key{ov}{closeskipafter}{\setlength{\@cls@sk@a}{#1}}%
  520. \def\sigskipcolumn#1{\setlength{\@sig@sk@c}{#1}}%
  521. \define@key{ov}{sigskipcolumn}{\setlength{\@sig@sk@c}{#1}}%
  522. \def\sigskiprow#1{\setlength{\@sig@sk@r}{#1}}%
  523. \define@key{ov}{sigskiprow}{\setlength{\@sig@sk@r}{#1}}%
  524. \def\sigsize#1{\setlength{\@sig@sp}{#1}}%
  525. \define@key{ov}{sigsize}{\setlength{\@sig@sp}{#1}}%
  526. \def\postsigskipafter#1{\setlength{\@post@sig@sp@a}{#1}}%
  527. \define@key{ov}{postsigskipafter}{\setlength{\@post@sig@sp@a}{#1}}% %
  528. \def\postsigskipbefore#1{\setlength{\@post@sig@sp@b}{#1}}%
  529. \define@key{ov}{postsigskipbefore}{\setlength{\@post@sig@sp@b}{#1}}% %
  530. \def\memoskipafter#1{\setlength{\@post@memo@sp}{#1}}%
  531. \define@key{ov}{memoskipafter}{\setlength{\@post@memo@sp}{#1}}%
  532. \def\memoskipbefore#1{\setlength{\@pre@memo@sp}{#1}}%
  533. \define@key{ov}{memoskipbefore}{\setlength{\@pre@memo@sp}{#1}}%
  534. \def\restletter#1{\setboolean{@resta@l}{true}%
  535. \begin{lrbox}{\@resta@ltr}\begin{minipage}{\textwidth}#1\end{minipage}\end{lrbox}}%
  536. \def\restlettera#1{\setboolean{@resta@l}{true}%
  537. \begin{lrbox}{\@resta@ltr}\begin{minipage}{\textwidth}#1\end{minipage}\end{lrbox}}%
  538. \def\restletterb#1{\setboolean{@restb@l}{true}%
  539. \begin{lrbox}{\@restb@ltr}\begin{minipage}{\textwidth}#1\end{minipage}\end{lrbox}}%
  540. \def\restletterc#1{\setboolean{@restc@l}{true}%
  541. \begin{lrbox}{\@restc@ltr}\begin{minipage}{\textwidth}#1\end{minipage}\end{lrbox}}%
  542. \def\restletterd#1{\setboolean{@restd@l}{true}%
  543. \begin{lrbox}{\@restd@ltr}\begin{minipage}{\textwidth}#1\end{minipage}\end{lrbox}}%
  544. \def\restlettere#1{\setboolean{@reste@l}{true}%
  545. \begin{lrbox}{\@reste@ltr}\begin{minipage}{\textwidth}#1\end{minipage}\end{lrbox}}%
  546. \def\unprtop#1{\setlength{\@unpr@tp}{#1}}%
  547. \define@key{ov}{unprtop}{\setlength{\@unpr@tp}{#1}}%
  548. \def\unprbottom#1{\setlength{\@unpr@bm}{#1}}%
  549. \define@key{ov}{unprbottom}{\setlength{\@unpr@bm}{#1}}%
  550. \def\unprright#1{\setlength{\@unpr@rt}{#1}}%
  551. \define@key{ov}{unprright}{\setlength{\@unpr@rt}{#1}}%
  552. \def\unprleft#1{\setlength{\@unpr@lt}{#1}}%
  553. \define@key{ov}{unprleft}{\setlength{\@unpr@lt}{#1}}%
  554. \def\@opt@stm{%
  555. \setboolean{@addr@fr@p}{false}%
  556. \setboolean{@addr@to@p}{false}%
  557. \setboolean{@memo@bl}{true}%
  558. \setboolean{@greet@p}{false}%
  559. \setboolean{@dt@l}{false}%
  560. \setboolean{@dt@c}{false}%
  561. \setboolean{@dt@p}{false}%
  562. \setboolean{@sig@p}{false}%
  563. \setboolean{@sig@mp}{true}%
  564. }%
  565. \def\@opt@stpr{%
  566. \setboolean{@addr@fr@p}{false}%
  567. \setboolean{@addr@to@p}{false}%
  568. \setboolean{@memo@bl}{true}%
  569. \setboolean{@greet@p}{false}%
  570. \setboolean{@dt@l}{false}%
  571. \setboolean{@dt@c}{false}%
  572. \setboolean{@dt@p}{false}%
  573. \setboolean{@sig@p}{false}%
  574. \setboolean{@sig@mp}{true}%
  575. }%
  576. \def\@opt@flm{%
  577. \setboolean{@addr@fr@p}{false}%
  578. \setboolean{@addr@to@p}{false}%
  579. \setboolean{@memo@bl}{true}%
  580. \setboolean{@greet@p}{false}%
  581. \setboolean{@dt@l}{false}%
  582. \setboolean{@dt@c}{false}%
  583. \setboolean{@dt@p}{false}%
  584. \setboolean{@sig@p}{false}%
  585. \setboolean{@sig@mp}{false}%
  586. \setboolean{@memo@b}{true}%
  587. \setboolean{@memo@c}{true}%
  588. \setboolean{@memo@d}{true}%
  589. \setboolean{@memo@h}{true}%
  590. \setboolean{@memo@i}{true}%
  591. \setboolean{@memo@j}{true}%
  592. \setboolean{@memo@k}{true}%
  593. \setboolean{@memo@l}{true}%
  594. \setboolean{@memo@m}{true}%
  595. \setboolean{@memo@n}{true}%
  596. }%
  597. \DeclareOption{memoaddrto}{\setboolean{@memo@b}{true}}%
  598. \define@key{ov}{memoaddrto}[true]{\iffixt{#1}{@memo@b}}%
  599. \DeclareOption{memoemailto}{\setboolean{@memo@k}{true}}%
  600. \define@key{ov}{memoemailto}[true]{\iffixt{#1}{@memo@k}}%
  601. \DeclareOption{memophoneto}{\setboolean{@memo@c}{true}}%
  602. \define@key{ov}{memophoneto}[true]{\iffixt{#1}{@memo@c}}%
  603. \DeclareOption{memopagerto}{\setboolean{@memo@n}{true}}%
  604. \define@key{ov}{memopagerto}[true]{\iffixt{#1}{@memo@n}}%
  605. \DeclareOption{memofaxto}{\setboolean{@memo@d}{true}}%
  606. \define@key{ov}{memofaxto}[true]{\iffixt{#1}{@memo@d}}%
  607. \DeclareOption{memoaddrfrom}{\setboolean{@memo@h}{true}}%
  608. \define@key{ov}{memoaddrfrom}[true]{\iffixt{#1}{@memo@h}}%
  609. \DeclareOption{memoemailfrom}{\setboolean{@memo@l}{true}}%
  610. \define@key{ov}{memoemailfrom}[true]{\iffixt{#1}{@memo@l}}%
  611. \DeclareOption{memopagerfrom}{\setboolean{@memo@m}{true}}%
  612. \define@key{ov}{memopagerfrom}[true]{\iffixt{#1}{@memo@m}}%
  613. \DeclareOption{memophonefrom}{\setboolean{@memo@i}{true}}%
  614. \define@key{ov}{memophonefrom}[true]{\iffixt{#1}{@memo@i}}%
  615. \DeclareOption{memofaxfrom}{\setboolean{@memo@j}{true}}%
  616. \define@key{ov}{memofaxfrom}[true]{\iffixt{#1}{@memo@j}}%
  617. \DeclareOption{memodate}{\setboolean{@dt@p}{true}}%
  618. \define@key{ov}{memodate}[true]{\iffixt{#1}{@dt@p}}%
  619. \DeclareOption{memonofrom}{\setboolean{@memo@e}{true}}%
  620. \define@key{ov}{memonofrom}[true]{\iffixt{#1}{@memo@e}}%
  621. \DeclareOption{memonoto}{\setboolean{@memo@g}{true}}%
  622. \define@key{ov}{memonoto}[true]{\iffixt{#1}{@memo@g}}%
  623. \DeclareOption{memonore}{\setboolean{@memo@f}{true}}%
  624. \define@key{ov}{memonore}[true]{\iffixt{#1}{@memo@f}}%
  625. \DeclareOption{fullmemo}{\@opt@flm}%
  626. \define@key{ov}{fullmemo}[true]{\iffixq{#1}{\@opt@flm}}%
  627. \DeclareOption{stdmemo}{\@opt@stm}%
  628. \define@key{ov}{stdmemo}[true]{\iffixq{#1}{\@opt@stm}}%
  629. \def\@opt@pr{%
  630. \setboolean{@addr@fr@p}{true}%
  631. \setboolean{@addr@to@p}{false}%
  632. \setboolean{@pr@p}{true}%
  633. \setboolean{@greet@p}{false}%
  634. \setboolean{@dt@l}{false}%
  635. \setboolean{@dt@c}{false}%
  636. \setboolean{@dt@p}{false}%
  637. \setboolean{@sig@p}{false}%
  638. \setboolean{@sig@mp}{false}%
  639. }%
  640. \DeclareOption{pressrelease}{\@opt@pr}%
  641. \define@key{ov}{pressrelease}[true]{\iffixq{#1}{\@opt@pr}}%
  642. \DeclareOption{stdpressrelease}{\@opt@pr}%
  643. \define@key{ov}{stdpressrelease}[true]{\iffixq{#1}{\@opt@pr}}%
  644. \DeclareOption{dspace}{\setboolean{@space@d}{true}\setboolean{@space@s}{false}}%
  645. \DeclareOption{sspace}{\setboolean{@space@s}{true}\setboolean{@space@d}{false}}%
  646. \define@key{ov}{dspace}[true]{%
  647. \iffixq{#1}{\setboolean{@space@d}{true}\setboolean{@space@s}{false}}}%
  648. \define@key{ov}{sspace}[true]{%
  649. \iffixq{#1}{\setboolean{@space@s}{true}\setboolean{@space@d}{false}}}%
  650. \DeclareOption{faxhp}{\setboolean{@fax@hdr@pg}{true}\setboolean{@fax@RA}{false}}%
  651. \DeclareOption{faxheaderpage}{\setboolean{@fax@hdr@pg}{true}\setboolean{@fax@RA}{false}}%
  652. \define@key{ov}{faxheaderpage}[true]%
  653. {\iffixq{#1}{\setboolean{@fax@hdr@pg}{true}\setboolean{@fax@RA}{false}}}%
  654. \DeclareOption{faxhba}% Print fax header block on leader in right top-margin.
  655. {\setboolean{@fax@RA}{true}\setboolean{@fax@hdr@pg}{false}}%
  656. \define@key{ov}{faxhba}[true]% Print fax header block on leader in right top-margin.
  657. {\iffixq{#1}{\setboolean{@fax@RA}{true}\setboolean{@fax@hdr@pg}{false}}}%
  658. \DeclareOption{faxhbb}% Print fax header block - leader - upper right quad letter
  659. {\setboolean{@fax@RU}{true}\setboolean{@fax@hdr@pg}{false}}%
  660. \DeclareOption{faxbla}% Print FAX block in \Rheader
  661. {\setboolean{@fax@bla}{true}\setboolean{@fax@blb}{false}}%
  662. \DeclareOption{faxblb}%
  663. {\setboolean{@fax@blb}{true}\setboolean{@fax@bla}{false}}%
  664. \DeclareOption{faxblocka}%Print FAX block in \Rheader
  665. {\setboolean{@fax@bla}{true}\setboolean{@fax@blb}{false}}%
  666. \define@key{ov}{faxblocka}[true]%
  667. {\iffixq{#1}{\setboolean{@fax@bla}{true}\setboolean{@fax@blb}{false}}}%
  668. \DeclareOption{faxblockb}%
  669. {\setboolean{@fax@blb}{true}\setboolean{@fax@bla}{false}}%
  670. \define@key{ov}{faxblockb}[true]%
  671. {\iffixq{#1}{\setboolean{@fax@blb}{true}\setboolean{@fax@bla}{false}}}%
  672. \def\@opt@slr{%
  673. \setboolean{@addr@fr@l}{false}%
  674. \setboolean{@addr@fr@p}{true}%
  675. \setboolean{@addr@to@p}{true}%
  676. \setboolean{@dt@p}{true}%
  677. \setboolean{@dt@l}{false}%
  678. \setboolean{@dt@c}{false}%
  679. \setboolean{@greet@p}{true}%
  680. \setboolean{@sig@p}{true}%
  681. \setboolean{@sig@mp}{false}%
  682. \setboolean{@addr@to@l}{true}%
  683. \setboolean{@memo@bl}{false}%
  684. \setboolean{@dt@l}{false}%
  685. \txa{In @opt@slr}%
  686. \setboolean{@sig@l}{false}%
  687. \setboolean{@sig@c}{false}%
  688. \@d@pos{1}\@t@pos{3}\@f@pos{2}\setboolean{@s@b@s}{false}}%
  689. \DeclareOption{stdletter}{\@opt@slr}%
  690. \define@key{ov}{stdletter}[true]{\iffixq{#1}{\@opt@slr}}%
  691. \def\@opt@sln{\setboolean{@addr@fr@l}{false}%
  692. \setboolean{@addr@fr@p}{false}%
  693. \setboolean{@addr@to@p}{true}%
  694. \setboolean{@dt@p}{true}%
  695. \setboolean{@dt@l}{false}%
  696. \setboolean{@dt@c}{false}%
  697. \setboolean{@greet@p}{true}%
  698. \setboolean{@sig@p}{true}%
  699. \setboolean{@sig@mp}{false}%
  700. \setboolean{@addr@to@l}{true}%
  701. \setboolean{@memo@bl}{false}%
  702. \setboolean{@dt@l}{false}%
  703. \txa{In @opt@sln}%
  704. \setboolean{@sig@l}{false}%
  705. \setboolean{@sig@c}{false}%
  706. \@d@pos{1}\@t@pos{3}\@f@pos{2}\setboolean{@s@b@s}{false}}%
  707. \DeclareOption{stdletternofrom} {\@opt@sln}%
  708. \define@key{ov}{stdletternofrom}[true]{\iffixq{#1}{\@opt@sln}}%
  709. \def\@opt@blr{\setboolean{@addr@fr@l}{true}%
  710. \setboolean{@addr@fr@p}{true}%
  711. \setboolean{@memo@bl}{false}%
  712. \setboolean{@addr@to@l}{true}%
  713. \setboolean{@dt@l}{true}%
  714. \setboolean{@dt@c}{false}%
  715. \txa{In @opt@blr}%
  716. \setboolean{@sig@l}{true}%
  717. \setboolean{@sig@c}{false}%
  718. \setboolean{@sig@p}{true}%
  719. \setboolean{@sig@mp}{false}%
  720. \@d@pos{1}\@t@pos{3}\@f@pos{2}\setboolean{@s@b@s}{false}}%
  721. \DeclareOption{busletter} {\@opt@blr}%
  722. \define@key{ov}{busletter}[true]{\iffixq{#1}{\@opt@blr}}%
  723. \def\@opt@bln{\setboolean{@addr@fr@l}{true}%
  724. \setboolean{@addr@fr@p}{false}%
  725. \setboolean{@memo@bl}{false}%
  726. \setboolean{@addr@to@l}{true}%
  727. \setboolean{@dt@l}{true}%
  728. \setboolean{@dt@c}{false}%
  729. \txa{In @opt@bln}%
  730. \setboolean{@sig@l}{true}%
  731. \setboolean{@sig@p}{true}%
  732. \setboolean{@sig@mp}{false}%
  733. \setboolean{@sig@c}{false}%
  734. \@d@pos{1}\@t@pos{3}\@f@pos{2}\setboolean{@s@b@s}{false}}%
  735. \DeclareOption{busletternofrom} {\@opt@bln}%
  736. \newboolean{@test@opt}\setboolean{@test@opt}{false}%
  737. \define@key{ov}{busletternofrom}[true]{\iffixq{#1}{\@opt@bln}}%
  738. \DeclareOption{addrfromleft} {\setboolean{@addr@fr@l}{true}}%
  739. \define@key{ov}{addrfromleft}[true]{\iffixt{#1}{@addr@fr@l}}%
  740. \DeclareOption{addrfromright}{\setboolean{@addr@fr@l}{false}}%
  741. \define@key{ov}{addrfromright}[true]{\iffixf{#1}{@addr@fr@l}}%
  742. \DeclareOption{addrtoleft} {\setboolean{@addr@to@l}{true}}%
  743. \define@key{ov}{addrtoleft}[true]{\iffixt{#1}{@addr@to@l}}%
  744. \DeclareOption{addrtoright} {\setboolean{@addr@to@l}{false}}%
  745. \define@key{ov}{addrtoright}[true]{\iffixf{#1}{@addr@to@l}}%
  746. \DeclareOption{addrtoemail} {\setboolean{@addr@to@e}{true}}%
  747. \define@key{ov}{addrtoemail}[true]{\iffixt{#1}{@addr@to@e}}%
  748. \DeclareOption{addrtophone} {\setboolean{@addr@to@t}{true}}%
  749. \define@key{ov}{addrtophone}[true]{\iffixt{#1}{@addr@to@t}}%
  750. \DeclareOption{addrtofax} {\setboolean{@addr@to@f}{true}}%
  751. \DeclareOption{addrfromemail}{\setboolean{@addr@fr@e}{true}}%
  752. \define@key{ov}{addrfromemail}[true]{\iffixt{#1}{@addr@fr@e}}%
  753. \DeclareOption{addrfromphone}{\setboolean{@addr@fr@t}{true}}%
  754. \define@key{ov}{addrfromphone}[true]{\iffixt{#1}{@addr@fr@t}}%
  755. \DeclareOption{addrfromfax} {\setboolean{@addr@fr@f}{true}}%
  756. \define@key{ov}{addrfromfax}[true]{\iffixt{#1}{@addr@fr@f}}%
  757. \providecommand{\boxht}{}\providecommand{\boxwd}{}\providecommand{\btwlb}{}%
  758. \providecommand{\topht}{}\providecommand{\lftwd}{}%
  759. \def\labpl#1{\setlength{\@lab@pl}{#1}}%
  760. \def\boxht#1{\setlength{\@lab@bh}{#1}}%
  761. \def\boxwd#1{\setlength{\@lab@bw}{#1}}%
  762. \def\topht#1{\setlength{\@lab@th}{#1}}%
  763. \def\lftwd#1{\setlength{\@lab@lm}{#1}}%
  764. \def\btwlb#1{\setlength{\@lab@bl}{#1}}%
  765. \def\@labname{nolines,dateno}%
  766. \def\Alaba{\def\@labname{Avery5160,nolines,dateno}%
  767. \setboolean{@set@env}{true}\setboolean{@use@envlab}{false} \def\@tab@just{rrr}\labpl{10.125in}%
  768. \setcounter{@lab@tot@row}{10} \setcounter{@lab@tot@col}{3} \btwlb{5pt}%
  769. \boxht{67pt} \boxwd{174pt} \topht{38pt} \lftwd{-77pt} \setlength{\@Hgt@Foot}{0pt}}%
  770. \def\Alabb{\def\@labname{Avery5161,nolines,dateno}%
  771. \setboolean{@set@env}{true}\setboolean{@use@envlab}{false} \def\@tab@just{rr}\labpl{10.125in}%
  772. \setcounter{@lab@tot@row}{10} \setcounter{@lab@tot@col}{2} \btwlb{8pt}%
  773. \boxht{67pt} \boxwd{274pt} \topht{37pt} \lftwd{-80pt} \setlength{\@Hgt@Foot}{0pt}}%
  774. \def\Alabc{\def\@labname{Avery5162,nolines,dateno}%
  775. \setboolean{@set@env}{true}\setboolean{@use@envlab}{false} \def\@tab@just{rr}\labpl{9.5in}%
  776. \setcounter{@lab@tot@row}{7} \setcounter{@lab@tot@col}{2} \btwlb{8pt}%
  777. \boxht{93pt} \boxwd{274pt} \topht{62pt} \lftwd{-80pt} \setlength{\@Hgt@Foot}{0pt}}%
  778. \def\Alabd{\def\@labname{Avery5163,nolines,dateno}%
  779. \setboolean{@set@env}{true}\setboolean{@use@envlab}{false} \def\@tab@just{rr}\labpl{10.125in}%
  780. \setcounter{@lab@tot@row}{5} \setcounter{@lab@tot@col}{2} \btwlb{8pt}%
  781. \boxht{139pt} \boxwd{274pt} \topht{38pt} \lftwd{-80pt} \setlength{\@Hgt@Foot}{0pt}}%
  782. \def\Alabe{\def\@labname{Avery5164,nolines,dateno}%
  783. \setboolean{@set@env}{true}\setboolean{@use@envlab}{false} \def\@tab@just{rr}\labpl{10.125in}%
  784. \setcounter{@lab@tot@row}{3} \setcounter{@lab@tot@col}{2} \btwlb{8pt}%
  785. \boxht{232pt} \boxwd{274pt} \topht{38pt} \lftwd{-80pt} \setlength{\@Hgt@Foot}{0pt}}%
  786. \DeclareOption{Avery5160}{\Alaba}%
  787. \DeclareOption{Avery5161}{\Alabb}%
  788. \DeclareOption{Avery5261}{\Alabb}%
  789. \DeclareOption{Avery5162}{\Alabc}%
  790. \DeclareOption{Avery5163}{\Alabd}%
  791. \DeclareOption{Avery5164}{\Alabe}%
  792. \DeclareOption{Avery5264}{\Alabe}%
  793. \DeclareOption{labto}{\setboolean{@lab@t}{true}}%
  794. \DeclareOption{labrowfrto}{\setboolean{@lab@rft}{true}\setboolean{@lab@t}{false}}%
  795. \DeclareOption{labcolfrto}{\setboolean{@lab@cft}{true}\setboolean{@lab@t}{false}}%
  796. \def\labsize#1{\def\@lab@size{#1}}%
  797. \define@key{ov}{Avery5160}[true]{\iffixq{#1}{\Alaba}}%
  798. \define@key{ov}{Avery5161}[true]{\iffixq{#1}{\Alabb}}%
  799. \define@key{ov}{Avery5261}[true]{\iffixq{#1}{\Alabb}}%
  800. \define@key{ov}{Avery5162}[true]{\iffixq{#1}{\Alabc}}%
  801. \define@key{ov}{Avery5163}[true]{\iffixq{#1}{\Alabd}}%
  802. \define@key{ov}{Avery5164}[true]{\iffixq{#1}{\Alabe}}%
  803. \define@key{ov}{Avery5264}[true]{\iffixq{#1}{\Alabe}}%
  804. \define@key{ov}{labto}[true]{\iffixq{#1}{\setboolean{@lab@t}{true}}}%
  805. \define@key{ov}{labrowfrto}[true]{\iffixq{#1}%
  806. {\setboolean{@lab@rft}{true}\setboolean{@lab@t}{false}}}%
  807. \define@key{ov}{labsize}{\def\@lab@size{#1}}
  808. \define@key{ov}{labcolfrto}[true]{\iffixq{#1}%
  809. {\setboolean{@lab@cft}{true}\setboolean{@lab@t}{false}}}%
  810. \DeclareOption{setuplabel}{\setboolean{@set@env}{true}\setboolean{@use@envlab}{false}}%
  811. \define@key{ov}{setuplabel}[true]{%
  812. \iffixq{#1}{\setboolean{@set@env}{true}\setboolean{@use@envlab}{false}}}%
  813. \def\@dodtf{\@d@pos{1}\@t@pos{3}\@f@pos{2}\setboolean{@s@b@s}{false}}%
  814. \def\@dofdt{\@d@pos{2}\@t@pos{3}\@f@pos{1}\setboolean{@s@b@s}{false}}%
  815. \def\@doftd{\@d@pos{3}\@t@pos{2}\@f@pos{1}\setboolean{@s@b@s}{false}}%
  816. \def\@dosbs{\@d@pos{1}\@t@pos{0}\@f@pos{0}\setboolean{@s@b@s}{true}}%
  817. \DeclareOption{orderdatefromto}{\@dodtf}%
  818. \define@key{ov}{orderdatefromto}[true]{\iffixq{#1}{\@dodtf}}%
  819. \DeclareOption{orderfromdateto}{\@dofdt}%
  820. \define@key{ov}{orderfromdateto}[true]{\iffixq{#1}{\@dofdt}}%
  821. \DeclareOption{orderfromtodate}{\@doftd}%
  822. \define@key{ov}{orderfromtodate}[true]{\iffixq{#1}{\@doftd}}%
  823. \DeclareOption{sidebyside}{\@dosbs}%
  824. \define@key{ov}{sidebyside}[true]{\iffixq{#1}{\@dosbs}}%
  825. \DeclareOption{margflush}{\setboolean{@marg@lt@fl@tp}{true}}%
  826. \define@key{ov}{margflush}[true]{\iffixt{#1}{@marg@lt@fl@tp}}%
  827. \DeclareOption{biggap}{\setboolean{@gap@small}{false}}%
  828. \DeclareOption{addrfromno}{\setboolean{@addr@fr@p}{false}}%
  829. \DeclareOption{noaddrfr}{\setboolean{@addr@fr@p}{false}}%
  830. \DeclareOption{noaddrfrom}{\setboolean{@addr@fr@p}{false}}%
  831. \define@key{ov}{noaddrfrom}[true]{\iffixf{#1}{@addr@fr@p}}%
  832. \DeclareOption{addrtono}{\setboolean{@addr@to@p}{false}}%
  833. \DeclareOption{noaddrto}{\setboolean{@addr@to@p}{false}}%
  834. \define@key{ov}{noaddrto}[true]{\iffixf{#1}{@addr@to@p}}%
  835. \DeclareOption{greetno}{\setboolean{@greet@p}{false}}%
  836. \define@key{ov}{nogreet}[true]{\iffixf{#1}{@greet@p}}%
  837. \DeclareOption{cellowindow}{\setboolean{@cello@win}{true}}%
  838. \define@key{ov}{cellowindow}[true]{\iffixt{#1}{@cello@win}}%
  839. \def\celloheight#1{\setlength{\@cello@h}{#1}}%
  840. \def\cellowidth#1{\setlength{\@cello@w}{#1}}%
  841. \define@key{ov}{celloheight}{\celloheight{#1}}%
  842. \define@key{ov}{cellowidth}{\cellowidth{#1}}%
  843. \def\cellodown#1{\setlength{\@cello@d}{#1}}%
  844. \def\celloleft#1{\setlength{\@cello@l}{#1}}%
  845. \define@key{ov}{cellodown}{\cellodown{#1}}%
  846. \define@key{ov}{celloleft}{\celloleft{#1}}%
  847. \DeclareOption{dateright}{\setboolean{@dt@l}{false}\setboolean{@dt@c}{false}}%
  848. \define@key{ov}{dateright}[true]{\iffixq{#1}{\setboolean{@dt@l}{false}\setboolean{@dt@c}{false}}}%
  849. \def\dateright#1{\iffixq{#1}{\setboolean{@dt@l}{false}\setboolean{@dt@c}{false}}}%
  850. \DeclareOption{dateleft}{\setboolean{@dt@l}{true}\setboolean{@dt@c}{false}}%
  851. \define@key{ov}{dateleft}[true]{\iffixq{#1}{\setboolean{@dt@l}{true}\setboolean{@dt@c}{false}}}%
  852. \def\dateleft#1{\iffixq{#1}{\setboolean{@dt@l}{true}\setboolean{@dt@c}{false}}}%
  853. \DeclareOption{datecenter}{\setboolean{@dt@l}{false}\setboolean{@dt@c}{true}}%
  854. \define@key{ov}{datecenter}[true]{\iffixq{#1}{\setboolean{@dt@l}{false}\setboolean{@dt@c}{true}}}%
  855. \def\datecenter#1{\iffixq{#1}{\setboolean{@dt@l}{false}\setboolean{@dt@c}{true}}}%
  856. \DeclareOption{dateno}{\setboolean{@dt@p}{false}}%
  857. \define@key{ov}{dateno}[true]{\iffixf{#1}{@dt@p}}%
  858. \def\dateno#1{\iffixf{#1}{@dt@p}}%
  859. \DeclareOption{dateyes}{\setboolean{@dt@p}{true}}%
  860. \def\setsigl{\setboolean{@sig@l}{true}\setboolean{@sig@c}{false}}
  861. \def\setsigc{\setboolean{@sig@l}{false}\setboolean{@sig@c}{true}}
  862. \def\setsigr{\setboolean{@sig@l}{false}\setboolean{@sig@c}{false}}
  863. \DeclareOption{signatureleft}{\txa{DO fsignl}\setsigl}%
  864. \define@key{ov}{signatureleft}[true]{\iffixq{#1}{\txa{DK fsignl}\setsigl}}%
  865. \def\signatureleft#1{\txa{SO fsignl}\setsigl}%
  866. \DeclareOption{sigleft}{\txa{DO asignl}\setsigl}%
  867. \define@key{ov}{sigleft}[true]{\iffixq{#1}{\txa{DK asignl}\setsigl}}%
  868. \def\sigleft#1{\txa{SO asignl}\setsigl}%
  869. \DeclareOption{signaturecenter}{\txa{DO fsignc}\setsigc}%
  870. \define@key{ov}{signaturecenter}[true]{\iffixq{#1}{\txa{DK fsignc}\setsigc}}%
  871. \def\signaturecenter#1{\txa{SO fsignc}\setsigc}%
  872. \DeclareOption{sigcenter}{\txa{DO asignc}\setsigc}%
  873. \define@key{ov}{sigcenter}[true]{\iffixq{#1}{\txa{DK asignc}\setsigc}}%
  874. \def\sigcenter#1{\txa{SO asignc}\setsigc}%
  875. \DeclareOption{signatureright}{\txa{DO fsignr}\setsigr}%
  876. \define@key{ov}{signatureright}[true]{\iffixq{#1}{\txa{DK fsignr}\setsigr}}%
  877. \def\signatureright#1{\txa{SO fsignr}\setsigr}%
  878. \DeclareOption{sigright}{\txa{DO asignr}\setsigr}%
  879. \define@key{ov}{sigright}[true]{\iffixq{#1}{\txa{DK asignr}\setsigr}}%
  880. \def\sigright#1{\txa{SO asignr}\setsigr}%
  881. \DeclareOption{signatureno}{\setboolean{@sig@p}{false}}%
  882. \define@key{ov}{signatureno}[true]{\iffixf{#1}{\setboolean{@sig@p}{false}}}%
  883. \def\signatureno#1{\setboolean{@sig@p}{false}}%
  884. \def\@fix@all@fr{%
  885. \setboolean{@use@all@fr}{true}\setboolean{@addr@fr@p}{true}\setboolean{@addr@fr@l}{true}%
  886. \setboolean{@addr@fr@f}{true}\setboolean{@addr@fr@e}{true}\setboolean{@addr@fr@t}{true}}%
  887. \DeclareOption{printallfrom}{\@fix@all@fr}%
  888. \define@key{ov}{printallfrom}[true]{\iffixq{#1}{\@fix@all@fr}}%
  889. \def\@fix@all@to{
  890. \setboolean{@use@all@to}{true}\setboolean{@addr@to@p}{true}\setboolean{@addr@to@l}{true}%
  891. \setboolean{@addr@to@f}{true}\setboolean{@addr@to@e}{true}\setboolean{@addr@to@t}{true}}%
  892. \DeclareOption{printallto}{\@fix@all@to}%
  893. \define@key{ov}{printallto}[true]{\iffixq{#1}{\@fix@all@to}}%
  894. \DeclareOption{blankheader}{\setboolean{@b@h}{true}}%
  895. \define@key{ov}{blankheader}[true]{\iffixt{#1}{@b@h}}%
  896. \DeclareOption{Blankheader}{\setboolean{@B@h}{true}}%
  897. \define@key{ov}{Blankheader}[true]{\iffixt{#1}{@B@h}}%
  898. \DeclareOption{blankfooter}{\setboolean{@b@f}{true}}%
  899. \define@key{ov}{blankfooter}[true]{\iffixt{#1}{@b@f}}%
  900. \DeclareOption{Blankfooter}{\setboolean{@B@f}{true}}%
  901. \define@key{ov}{Blankfooter}[true]{\iffixt{#1}{@B@f}}%
  902. \DeclareOption{blanklmargin}{\setboolean{@b@l}{true}}%
  903. \DeclareOption{blankleftmargin}{\setboolean{@b@l}{true}}%
  904. \define@key{ov}{blankleftmargin}[true]{\iffixt{#1}{@b@l}}%
  905. \DeclareOption{Blankleftmargin}{\setboolean{@B@l}{true}}%
  906. \define@key{ov}{Blankleftmargin}[true]{\iffixt{#1}{@B@l}}%
  907. \DeclareOption{blankrmargin}{\setboolean{@b@r}{true}}%
  908. \DeclareOption{blankrightmargin}{\setboolean{@b@r}{true}}%
  909. \define@key{ov}{blankrightmargin}[true]{\iffixt{#1}{@b@r}}%
  910. \DeclareOption{Blankrightmargin}{\setboolean{@B@r}{true}}%
  911. \define@key{ov}{Blankrightmargin}[true]{\iffixt{#1}{@B@r}}%
  912. \DeclareOption{Blankall}{\setboolean{@B@f}{true}\setboolean{@B@l}{true}%
  913. \setboolean{@B@h}{true}\setboolean{@B@r}{true}}%
  914. \define@key{ov}{Blankall}[true]%
  915. {\iffixq{#1}{\setboolean{@B@f}{true}\setboolean{@B@l}{true}%
  916. \setboolean{@B@h}{true}\setboolean{@B@r}{true}}}%
  917. \DeclareOption{blankall}{\setboolean{@b@f}{true}\setboolean{@b@l}{true}%
  918. \setboolean{@b@h}{true}\setboolean{@b@r}{true}}%
  919. \define@key{ov}{blankall}[true]%
  920. {\iffixq{#1}{\setboolean{@b@f}{true}\setboolean{@b@l}{true}%
  921. \setboolean{@b@h}{true}\setboolean{@b@r}{true}}}%
  922. \DeclareOption{BlankTotal}% Fixed
  923. {\setboolean{@B@f}{true}\setboolean{@B@l}{true}\setboolean{@B@h}{true}\setboolean{@B@r}{true}%
  924. \setboolean{@b@f}{true}\setboolean{@b@l}{true}\setboolean{@b@h}{true}\setboolean{@b@r}{true}}%
  925. \define@key{ov}{BlankTotal}[true]%
  926. {\iffixq{#1}{\setboolean{@B@f}{true}\setboolean{@B@l}{true}\setboolean{@B@h}{true}\setboolean{@B@r}{true}%
  927. \setboolean{@b@f}{true}\setboolean{@b@l}{true}%
  928. \setboolean{@b@h}{true}\setboolean{@b@r}{true}}}%
  929. \DeclareOption{useenvlab}{\setboolean{@set@env}{false}\setboolean{@use@envlab}{true}}%
  930. \define@key{ov}{useenvlab}[true]{%
  931. \iffixq{#1}{\setboolean{@use@envlab}{true}\setboolean{@set@env}{false}}}%
  932. \def\@paper@type{letterpaper}%
  933. \def\ifta{0}
  934. \DeclareOption{letterpaper}{\def\@paper@type{letterpaper}}%
  935. \define@key{ov}{letterpaper}[true]{\iffixq{#1}{\def\@paper@type{letterpaper}}}%
  936. \DeclareOption{legalpaper}{\def\@paper@type{legalpaper}}%
  937. \define@key{ov}{legalpaper}[true]{\iffixq{#1}{\def\@paper@type{legalpaper}}}%
  938. \DeclareOption{a4paper}{\def\@paper@type{a4paper}}%
  939. \define@key{ov}{a4paper}[true]{\iffixq{#1}{\def\@paper@type{a4paper}}}%
  940. \DeclareOption{a3paper}{\def\@paper@type{a3paper}}%
  941. \define@key{ov}{a3paper}[true]{\iffixq{#1}{\def\@paper@type{a3paper}}}%
  942. \setkeys{ov}{textwidthsize=0pt,textheightsize=0pt,bottommarginskip=5pt,%
  943. headermarginskip=0pt,rightmarginsize=72pt,leftmarginsize=72pt,bottommarginskipbelow=5pt,%
  944. leftmargintopdist=0pt,addrtoskipafter=18pt,unprright=0pt,labsize=\normalsize,%
  945. leftmarginskipleft=10pt,leftmarginskipright=10pt,dateskipbefore=20pt,%
  946. dateskipafter=36pt,addrfromskipafter=36pt,addrfromskipbefore=0pt,%
  947. greettoskipafter=18pt,sigskipbefore=12pt,sigskipafter=12pt,sigsize=72pt,%
  948. postsigskipafter=10pt,memoskipafter=15pt,memoskipbefore=35pt,unprtop=0pt,unprbottom=0pt,%
  949. unprleft=0pt}%
  950. \ExecuteOptions{\@paper@type,stdletter,american}%
  951. \DeclareOption*{\PassOptionsToClass{\CurrentOption}{letter}}%
  952. \ProcessOptions%
  953. \def\showdim#1{%
  954. \txa{ * * * }%
  955. \txa{*****************************************************************************}%
  956. \txa{Dimensions: #1}%
  957. \txa{\string\headheight: \the\headheight, \string\headsep: \the\headsep}%
  958. \txa{\string\paperheight: \the\paperheight, \string\paperwidth: \the\paperwidth}%
  959. \txa{\string\textheight: \the\textheight, \string\textwidth: \the\textwidth}
  960. \txa{\string\@colht: \the\@colht, \string\@colroom: \the\@colroom}%
  961. \txa{\string\vsize: \the\vsize, \string\columnwidth: \the\columnwidth}%
  962. \txa{\string\hsize: \the\hsize, \string\linewidth: \the\linewidth}%
  963. \txa{\string\evensidemargin: \the\evensidemargin, \string\footskip: \the\footskip}%
  964. \txa{\string\oddsidemargin: \the\oddsidemargin, \string\columnsep: \the\columnsep}%
  965. \txa{\string\topmargin: \the\topmargin}%
  966. \txa{\string\marginparpush: \the\marginparpush, \string\marginparsep: \the\marginparsep}%
  967. \txa{*****************************************************************************}%
  968. \txa{ * * * }%
  969. }%
  970. \showdim{Before LoadClass}%
  971. \PassOptionsToClass{\@paper@type,oneside,final}{letter}%
  972. \LoadClass{letter}%
  973. \showdim{Before addrset}%
  974. \RequirePackage{addrset}%
  975. \IfFileExists{afterpage.sty}{\RequirePackage{afterpage}}{}%
  976. \IfFileExists{envlab.sty}{\RequirePackage{envlab}}{}%
  977. \showdim{After LoadClass}%
  978. \setlength{\voffset}{0in}%
  979. \setlength{\itemsep}{.2em}%
  980. \setlength{\topsep}{.2em}%
  981. \setlength{\partopsep}{0\p@}%
  982. \setlength{\arraycolsep}{5\p@}%
  983. \setlength{\tabcolsep}{6\p@}%
  984. \setlength{\arrayrulewidth}{.4\p@}%
  985. \setlength{\doublerulesep}{2\p@}%
  986. \setlength{\tabbingsep}{\labelsep}%
  987. \skip\@mpfootins = \skip\footins%
  988. \setlength{\fboxsep}{3\p@}%
  989. \setlength{\fboxrule}{.4\p@}%
  990. \providecommand{\geometry}{ }%
  991. \def\geometry#1{\typeout{Command \string\geometry{items} no longer supported.}%
  992. \typeout{newlfm supports several dimensional commands. Please check the manual for detail.}%
  993. }%
  994. \renewcommand{\theequation}{\@arabic\c@equation}%
  995. \renewcommand{\footnoterule}{%
  996. \kern-\p@%
  997. \hrule \@width .4\columnwidth%
  998. \kern .6\p@}%
  999. \long\def\@makefntext#1{%
  1000. \noindent \hangindent 5\p@%
  1001. \hb@xt@5\p@{\hss\@makefnmark}#1}%
  1002. \renewcommand{\thefigure}{\@arabic\c@figure}%
  1003. \providecommand{\figurename}{}\renewcommand{\figurename}{Figure}%
  1004. \providecommand{\tablename}{} \renewcommand{\tablename}{Table}%
  1005. \newcommand{\fps@figure}{tbp}\newcommand{\ftype@figure}{1}\newcommand{\ext@figure}{lof}%
  1006. \newcommand{\fnum@figure}{\figurename~\thefigure}%
  1007. \newenvironment{figure}{\@float{figure}}{\end@float}%
  1008. \newenvironment{figure*}{\@dblfloat{figure}}{\end@dblfloat}%
  1009. \renewcommand\thetable{\@arabic\c@table}%
  1010. \newcommand{\fps@table}{tbp}\newcommand{\ftype@table}{2}%
  1011. \newcommand{\ext@table}{lot}%
  1012. \newcommand{\fnum@table}{\tablename~\thetable}%
  1013. \newenvironment{table}{\@float{table}}{\end@float}%
  1014. \newenvironment{table*}{\@dblfloat{table}}{\end@dblfloat}%
  1015. \setlength\@caption@skip@above{10\p@}\setlength\@caption@skip@below{0\p@}%
  1016. \long\def\@makecaption#1#2{%
  1017. \vskip\@caption@skip@above\sbox\@tempboxa{#1: #2}%
  1018. \ifdim \wd\@tempboxa >\hsize%
  1019. #1: #2\par%
  1020. \else\global \@minipagefalse%
  1021. \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}%
  1022. \fi\vskip\@caption@skip@below}%
  1023. \newcommand{\section}[1]{{\Large {\bfseries #1}}}%
  1024. \def\monthname{% timestamp function
  1025. \ifcase\month%
  1026. \or January\or February\or March\or April \or May\or June%
  1027. \or July\or August\or September\or October \or November\or December%
  1028. \fi%
  1029. }%
  1030. \def\timestring{%
  1031. \begingroup%
  1032. \count0 = \time \divide\count0 by 60%
  1033. \count2 = \count0 % the hour%
  1034. \count4 = \time \multiply\count0 by 60%
  1035. \advance\count4 by -\count0% the minute%
  1036. \ifnum\count4<10 \toks1 = {0} \else \toks1 = {}\fi%
  1037. \ifnum\count2<12 \toks0 = {A.M.}%
  1038. \else \toks0 = {P.M.}\advance\count2 by -12\fi%
  1039. \ifnum\count2=0 \count2 = 12 \fi % make midnight 12%
  1040. {\number\count2:\the\toks1 \number\count4%
  1041. \thinspace \the\toks0}%
  1042. \endgroup%
  1043. }%
  1044. \def\timestamp{\number\day\space\monthname\space\number\year,\space\timestring}%
  1045. \def\datestamp{\monthname\space\number\day,\space\number\year}%
  1046. \def\noheadline{\setboolean{@hl}{false}}%
  1047. \define@key{ov}{noheadline}[true]{\iffixq{#1}{\setboolean{@hl}{false}}}%
  1048. \def\nofootline{\setboolean{@fl}{false}}%
  1049. \define@key{ov}{nofootline}[true]{\iffixq{#1}{\setboolean{@fl}{false}}}%
  1050. \def\nolines{\setboolean{@fl}{false}\setboolean{@hl}{false}}%
  1051. \define@key{ov}{nolines}[true]{\iffixq{#1}{\setboolean{@fl}{false}\setboolean{@hl}{false}}}%
  1052. \def\noHeadline{\setboolean{@Hl}{false}}%
  1053. \define@key{ov}{noHeadline}[true]{\iffixq{#1}{\setboolean{@Hl}{false}}}%
  1054. \def\noFootline{\setboolean{@Fl}{false}}%
  1055. \define@key{ov}{noFootline}[true]{\iffixq{#1}{\setboolean{@Fl}{false}}}%
  1056. \def\noLines{\setboolean{@Fl}{false}\setboolean{@hl}{false}}%
  1057. \define@key{ov}{noLines}[true]{\iffixq{#1}{\setboolean{@Fl}{false}\setboolean{@Hl}{false}}}%
  1058. \def\@plhl{1}\def\nopheadline{\def\@plhl{0}}%
  1059. \def\@plfl{1}\def\nopfootline{\def\@plfl{0}}%
  1060. \def\Headlinewd#1{\setlength{\@Hrw}{#1}}%
  1061. \def\headlinewd#1{\setlength{\@hrw}{#1}}%
  1062. \def\Footlinewd#1{\setlength{\@Frw}{#1}}%
  1063. \def\footlinewd#1{\setlength{\@frw}{#1}}%
  1064. \define@key{ov}{Headlinewd}{\setlength{\@Hrw}{#1}}%
  1065. \define@key{ov}{headlinewd}{\setlength{\@hrw}{#1}}%
  1066. \define@key{ov}{Footlinewd}{\setlength{\@Frw}{#1}}%
  1067. \define@key{ov}{footlinewd}{\setlength{\@frw}{#1}}%
  1068. \fancypagestyle{ltrhead}{%
  1069. \def\ifta{0}%
  1070. \txa{Before setting up letterhead}%
  1071. \showdim{Letterhead}%
  1072. \fancyhf{}%
  1073. \txa{Current stored info: \string\@ltr@h:\@ltr@h}%
  1074. \fancyfoot[L]{\@Lfooter}%
  1075. \fancyfoot[C]{\@Cfooter}%
  1076. \fancyfoot[R]{\@Rfooter}%
  1077. \fancyhead[L]{\@Lheader \vspace*{\the\@marg@tp@a}}%
  1078. \fancyhead[C]{\@Cheader \vspace*{\the\@marg@tp@a}}%
  1079. \fancyhead[R]{\@Rheader \vspace*{\the\@marg@tp@a}}%
  1080. \showdim{Letterhead}%
  1081. \def\@lodd{\relax}%
  1082. \def\@rodd{\relax}%
  1083. \txa{After setting up letterhead}%
  1084. \def\ifta{0}%
  1085. }%
  1086. \fancypagestyle{othhead}{%
  1087. \def\ifta{0}%
  1088. \fancyhf{}%
  1089. \fancyfoot[L]{\@lfooter}%
  1090. \fancyfoot[C]{\@cfooter}%
  1091. \fancyfoot[R]{\@rfooter}%
  1092. \fancyhead[L]{\@lheader \vspace*{\the\@marg@tp@a}}%
  1093. \fancyhead[R]{\@rheader \vspace*{\the\@marg@tp@a}}%
  1094. \fancyhead[C]{\@cheader \vspace*{\the\@marg@tp@a}}%
  1095. \def\@lodd{\relax}%
  1096. \def\@rodd{\relax}%
  1097. }%
  1098. \providecommand{\@Lfooter}{}%
  1099. \providecommand{\@Cfooter}{}%
  1100. \providecommand{\@Rfooter}{}%
  1101. \providecommand{\@lfooter}{}%
  1102. \providecommand{\@cfooter}{}%
  1103. \providecommand{\@rfooter}{}%
  1104. \providecommand{\@LOfooter}{}%
  1105. \providecommand{\@COfooter}{}%
  1106. \providecommand{\@ROfooter}{}%
  1107. \providecommand{\@Lheader}{}%
  1108. \providecommand{\@Cheader}{}%
  1109. \providecommand{\@Rheader}{}%
  1110. \providecommand{\@lheader}{}%
  1111. \providecommand{\@cheader}{}%
  1112. \providecommand{\@rheader}{}%
  1113. \providecommand{\@LUheader}{}%
  1114. \providecommand{\@CUheader}{}%
  1115. \providecommand{\@RUheader}{}%
  1116. \providecommand{\@Rmarg}{}%
  1117. \providecommand{\@Lmarg}{}%
  1118. \providecommand{\@rmarg}{}%
  1119. \providecommand{\@lmarg}{}%
  1120. \def\Lfooter#1{\setboolean{@Lf@use}{true}\def\@Lfooter{#1}}%
  1121. \def\Cfooter#1{\setboolean{@Cf@use}{true}\def\@Cfooter{#1}}%
  1122. \def\Rfooter#1{\setboolean{@Rf@use}{true}\def\@Rfooter{#1}}%
  1123. \def\LOfooter#1{\setboolean{@LOf@use}{true}\def\@LOfooter{#1}}%
  1124. \def\COfooter#1{\setboolean{@COf@use}{true}\def\@COfooter{#1}}%
  1125. \def\ROfooter#1{\setboolean{@ROf@use}{true}\def\@ROfooter{#1}}%
  1126. \def\lfooter#1{\setboolean{@lf@use}{true}\def\@lfooter{#1}}%
  1127. \def\cfooter#1{\setboolean{@cf@use}{true}\def\@cfooter{#1}}%
  1128. \def\rfooter#1{\setboolean{@rf@use}{true}\def\@rfooter{#1}}%
  1129. \def\Lheader#1{\setboolean{@Lh@use}{true}\def\@Lheader{#1}}%
  1130. \def\Cheader#1{\setboolean{@Ch@use}{true}\def\@Cheader{#1}}%
  1131. \def\Rheader#1{\setboolean{@Rh@use}{true}\def\@Rheader{#1}}%
  1132. \def\LUheader#1{\setboolean{@LUh@use}{true}\def\@LUheader{#1}}%
  1133. \def\CUheader#1{\setboolean{@CUh@use}{true}\def\@CUheader{#1}}%
  1134. \def\RUheader#1{\setboolean{@RUh@use}{true}\def\@RUheader{#1}}%
  1135. \def\lheader#1{\setboolean{@lh@use}{true}\def\@lheader{#1}}%
  1136. \def\cheader#1{\setboolean{@ch@use}{true}\def\@cheader{#1}}%
  1137. \def\rheader#1{\setboolean{@rh@use}{true}\def\@rheader{#1}}%
  1138. \def\Rmargin#1{\def\@Rmarg{#1}\setboolean{@marg@Ruse}{true}}%
  1139. \def\Lmargin#1{\def\@Lmarg{#1}\setboolean{@marg@Luse}{true}}%
  1140. \def\rmargin#1{\def\@rmarg{#1}\setboolean{@marg@ruse}{true}}%
  1141. \def\lmargin#1{\def\@lmarg{#1}\setboolean{@marg@luse}{true}}%
  1142. \newcommand{\Prnt@Chk}[7]{%
  1143. \ifthenelse{\boolean{#1}}{\ifempty{#6}{}{%
  1144. \vspace*{-2\parskip}\vspace*{#6}}}{}%
  1145. \ifthenelse{\boolean{#1}}%
  1146. {\ifthenelse{\boolean{#2}}{\begin{flushleft}{#4}\end{flushleft}}%
  1147. {\ifthenelse{\boolean{#3}}%
  1148. {\begin{center}{#4}\end{center}}%
  1149. {\begin{flushright}{#4}\end{flushright}}}%
  1150. }{}%
  1151. \ifthenelse{\boolean{#1}}{#5}{}%
  1152. \ifthenelse{\boolean{#1}}{\ifempty{#7}{}%
  1153. {\vspace*{-2\parskip}\vspace*{#7}}}{}%
  1154. }%
  1155. \newcommand{\fixphr}[2]{\strut & \parbox[t]{\the\@utilc}{#1} #2 \\}%
  1156. \def\ifta{0}%
  1157. \def\memosec{%
  1158. \def\ifta{0}\txa{Start of memosec}%
  1159. \noindent\ignorespaces%
  1160. \settowidth{\@utila}{{\bf \@hnfr@phr:\hspace*{1.25em}}}%
  1161. \setlength{\@utilb}{\textwidth-\@utila-.1em}%
  1162. \addtolength{\@utilb}{-5pt}%
  1163. \settowidth{\@utilc}{\@phn@phr:\hspace*{2em}}%
  1164. \settowidth{\@utild}{\@fax@phr:\hspace*{2em}}%
  1165. \ifthenelse{\lengthtest{\@utilc<\@utild}}{\setlength{\@utilc}{\the\@utild}}{}%
  1166. \settowidth{\@utild}{\@pager@phr:\hspace*{2em}}%
  1167. \ifthenelse{\lengthtest{\@utilc<\@utild}}{\setlength{\@utilc}{\the\@utild}}{}%
  1168. \settowidth{\@utild}{\@email@phr:\hspace*{2em}}%
  1169. \ifthenelse{\lengthtest{\@utilc<\@utild}}{\setlength{\@utilc}{\the\@utild}}{}%
  1170. \txa{After length tests}%
  1171. {\vspace*{-1em}\setlength{\tabcolsep}{0pt}%
  1172. \setboolean{@memo@a}{false}%
  1173. \vspace*{\@pre@memo@sp}\noindent\par%
  1174. \begin{flushleft}%
  1175. \begin{tabular}{p{\the\@utila}l}%
  1176. \ifthenelse{\boolean{@memo@g}}%
  1177. {\setboolean{@memo@a}{true}%
  1178. \strut {\bf \@hnto@phr:} & \@name@to \strut \\%
  1179. \ifthenelse{\boolean{@memo@b}}{\strut &%
  1180. \parbox[t]{\the\@utilb}{\@addr@to\strut}\strut\\}{}%
  1181. \ifthenelse{\boolean{@memo@c}}{\fixphr{\@phn@phr:}{\@phn@to}}{}%
  1182. \ifthenelse{\boolean{@memo@d}}{\fixphr{\@fax@phr:}{\@fax@to}}{}%
  1183. \ifthenelse{\boolean{@memo@n}}{\fixphr{\@pager@phr:}{\@pager@to}}{}%
  1184. \ifthenelse{\boolean{@memo@k}}{\fixphr{\@email@phr:}{\@email@to}}{}%
  1185. }{}%
  1186. \ifthenelse{\boolean{@memo@e}}%
  1187. {\setboolean{@memo@a}{true}%
  1188. \strut {\bf \@hnfr@phr:} &{\@name@fr} \strut \\%
  1189. \ifthenelse{\boolean{@memo@h}}{\strut &%
  1190. \parbox[t]{\the\@utilb}{\@addr@fr \strut} \strut \\}{}%
  1191. \ifthenelse{\boolean{@memo@i}}{\fixphr{\@phn@phr:}{\@phn@fr}}{}%
  1192. \ifthenelse{\boolean{@memo@j}}{\fixphr{\@fax@phr:}{\@fax@fr}}{}%
  1193. \ifthenelse{\boolean{@memo@m}}{\fixphr{\@pager@phr:}{\@pager@fr}}{}%
  1194. \ifthenelse{\boolean{@memo@l}}{\fixphr{\@email@phr:}{\@email@fr}}{}%
  1195. }{}%
  1196. \ifthenelse{\boolean{@memo@f}}{\setboolean{@memo@a}{true}%
  1197. \strut {\bf \@re@phr:} & {\@re@line} \\%
  1198. }{}%
  1199. \ifthenelse{\boolean{@dt@p}}{\strut {\bf \@date@phr:} & \@xdate \\}{}%
  1200. \ifthenelse{\boolean{@memo@a}}{\hline}{}%
  1201. \end{tabular}%
  1202. \end{flushleft}%
  1203. }%
  1204. \vspace*{\@post@memo@sp}\noindent\par%
  1205. \txa{End of memosec}
  1206. }%
  1207. \InputIfFileExists{memosec.tex}%
  1208. {\typeout{Reading {\tt memosec.tex}}}%
  1209. {\typeout{The default definition for memosec is used. File memosec.tex doesn't exist.}}%
  1210. \newcommand{\pressbegin}{%maybe set dimensions, esp 1 inch margins, here
  1211. \settowidth{\@utila}{\@addr@fr}%
  1212. \def\ifta{0}%
  1213. \txa{Setup beginning of press release}%
  1214. \renewcommand{\headrulewidth}{0pt}\renewcommand{\footrulewidth}{0pt}%
  1215. \setboolean{@Hl}{false}\setlength{\@Hrw}{0pt}%
  1216. \setboolean{@hl}{false}\setlength{\@hrw}{0pt}%
  1217. \setboolean{@Fl}{false}\setlength{\@Frw}{0pt}%
  1218. \setboolean{@fl}{false}\setlength{\@frw}{0pt}%
  1219. \begin{flushleft}%
  1220. \rule{\textwidth}{1pt} \par \noindent%
  1221. \centerline{\LARGE \@pr@release \strut} \par\noindent%
  1222. \rule{\textwidth}{1pt} \par \noindent
  1223. \txa{After first block}
  1224. \setlength{\tabcolsep}{0pt}%
  1225. \begin{tabular}{l@{\hspace{1em}}l}%
  1226. \textbf{\@contact@phr:} & \@name@fr \strut \\%
  1227. & \parbox[t]{\@utila}{\@addr@fr \strut } \strut \\ %%
  1228. \ifempty{\@phn@fr}{}{\textbf{\@phn@phr:} & \@phn@fr \strut \\}%
  1229. \ifempty{\@phnb@fr}{}{\textbf{\@phn@phr:} & \@phnb@fr \strut \\}%
  1230. \ifempty{\@phnc@fr}{}{\textbf{\@phn@phr:} & \@phnc@fr \strut \\}%
  1231. \ifempty{\@phnd@fr}{}{\textbf{\@phn@phr:} & \@phnd@fr \strut \\}%
  1232. \ifempty{\@fax@fr}{}{\textbf{\@fax@phr:} & \@fax@fr \strut \\}% % maybe email, web site?
  1233. \textbf{Date:} & \@xdate%
  1234. \end{tabular}%
  1235. \end{flushleft}%
  1236. \txa{After endflushleft}
  1237. \rule{\textwidth}{1pt} \par \noindent
  1238. \centerline{\textbf{\Large \@pr@headline}} \par \noindent
  1239. \rule{\textwidth}{1pt} \par \noindent
  1240. \ifthenelse{\boolean{@space@d}}{\begin{doublespace}}{\begin{singlespace}}%
  1241. \ifthenelse{\boolean{@pr@by}}{\noindent \@pr@byline \\}{}
  1242. \noindent
  1243. \txa{end of pressbegin}
  1244. }%
  1245. \InputIfFileExists{prsrls.tex}%
  1246. {\typeout{Reading press release page setup from prsrls.tex}}%
  1247. {\typeout{Press release definitions stored in newlfm.cls}}%
  1248. \txa{Next part}
  1249. \newcommand*{\faxpage}{{%
  1250. \def\ifta{0}\showdim{Before setpage inside faxpage}%
  1251. \lsetpage{722pt}{6.5in}{1in}{0in}{.25in}{1in}{.75in}{.25in}{.25in}%
  1252. \showdim{After setpage}%
  1253. {\def\ifta{0}\showdim{Before fax page setup A}%
  1254. \setlength{\@utila}{\paperheight}\addtolength{\@utila}{-1in}%
  1255. \setlength{\@utilb}{\paperwidth}\addtolength{\@utilb}{-2in}%
  1256. \global\setlength{\textwidth}{\paperwidth-2in}%
  1257. \txa{\string\paperheight:\paperheight,\string\@utila:\the\@utila}%
  1258. \txa{\string\paperwidth:\paperwidth,\string\@utilb:\the\@utilb}\gdef\npind{A1}%
  1259. \@clear@box%
  1260. \def\ifta{0}%
  1261. \txa{\string\paperheight:\the\paperheight,\string\@utila:\the\@utila}%
  1262. \txa{\string\paperwidth:\the\paperwidth,\string\@utilb:\the\@utilb}%
  1263. \txa{\string\textheight:\the\textheight,\string\textwidth:\the\textwidth}%
  1264. \newpage\c@page\@ne\interlinepenalty=200%
  1265. \showdim{Before fax page setup B}%
  1266. \thispagestyle{empty}%
  1267. \vspace*{-\the\@Hgt@Head}\vspace*{.5in}%
  1268. \showdim{Inside fax page specification}%
  1269. \begin{center}%
  1270. \framebox{\Huge{\@fax@cover@line}} \\%
  1271. \vspace*{.5in} \Large{\@fax@page@count: \ref{totpage}} \\%
  1272. \vspace*{.5in} \Large{\timestamp} \\%
  1273. \end{center}%
  1274. \settowidth{\@utila}{\LARGE{\@hnto@phr:}}%
  1275. \settowidth{\@utilb}{\LARGE{\@hnfr@phr:}}%
  1276. \ifthenelse{\lengthtest{\@utila<\@utilb}}{\setlength{\@utila}{\@utilb}}{}%
  1277. \settowidth{\@utilb}{\LARGE{\@m@phr:}}%
  1278. \ifthenelse{\lengthtest{\@utila<\@utilb}}{\setlength{\@utila}{\@utilb}}{}%
  1279. \setlength{\tabcolsep}{0pt}%
  1280. \setlength{\@utilb}{\the\textwidth-\the\@utila}%
  1281. \txa{Lengths:\the\textwidth, \the\@utila, \the\@utilb}%
  1282. \begin{tabular}{p{\the\@utila}p{\the\@utilb}} \hline \\%
  1283. \LARGE{\@hnto@phr:} & \parbox[t]{\@utilb}{\@name@to \strut \\ \@addr@to \strut%
  1284. \ifempty{\@phn@to}{}{\\ \@phn@phr:\space\@phn@to \strut}%
  1285. \ifempty{\@phnb@to}{}{\\ \@phn@phr:\space\@phnb@to \strut}%
  1286. \ifempty{\@phnc@to}{}{\\ \@phn@phr:\space\@phnc@to \strut}%
  1287. \ifempty{\@phnd@to}{}{\\ \@phn@phr:\space\@phnd@to \strut}%
  1288. \ifempty{\@fax@to}{}{\\ \@fax@phr:\space\@fax@to \strut}} \vspace*{5pt} \\ \hline \vspace*{5pt}%
  1289. \LARGE{\@hnfr@phr:} & \vspace*{5pt}%
  1290. \parbox[t]{\@utilb}{\@name@fr \strut \\ \@addr@fr \strut %%
  1291. \ifempty{\@phn@fr}{}{\\ \@phn@phr:\space\@phn@fr \strut}%
  1292. \ifempty{\@phnb@fr}{}{\\ \@phn@phr:\space\@phnb@fr \strut}%
  1293. \ifempty{\@phnc@fr}{}{\\ \@phn@phr:\space\@phnc@fr \strut}%
  1294. \ifempty{\@phnd@fr}{}{\\ \@phn@phr:\space\@phnd@fr \strut}%
  1295. \ifempty{\@fax@fr}{}{\\ \@fax@phr:\space\@fax@fr \strut}} \vspace*{5pt} \\ \hline%
  1296. \vspace*{5pt}%
  1297. \strut \LARGE{\@re@phr:} & \strut%
  1298. \ifthenelse{\equal{\@re@line}{---BLANK---}}{}{\@re@line}\strut \\%
  1299. \ifempty{\@fax@mssg}{}{ \strut%
  1300. \LARGE{\@m@phr:} \strut &%
  1301. \parbox[t]{\@utilb}{\strut \@fax@mssg} \strut \\ \hline}%
  1302. \end{tabular}}%
  1303. \def\ifta{0}\showdim{End of fax page setup }%
  1304. \@dim@resetfalse%
  1305. \txa{After dimreset}%
  1306. \gdef\npind{F}%
  1307. \txa{Before newpage}%
  1308. \newpage%
  1309. \txa{After newpage}%
  1310. }}%
  1311. \InputIfFileExists{faxpage.tex}%
  1312. {\typeout{Reading FAX page definitions from faxpage.tex}}%
  1313. {\typeout{faxpage definitions stored in newlfm.cls}}%
  1314. \newcommand{\faxblocka}{%
  1315. \sbox{\fba}{%
  1316. \framebox[3.0in]{\parbox[b]{3.0in}{\setlength{\tabcolsep}{0pt}%
  1317. \begin{tabular}{p{1.0in}p{2in}}%
  1318. \multicolumn{2}{l}{\Large \hspace*{.25in}%
  1319. \@fax@phr{} \@doc@phr} \\ \hline%
  1320. \@hnfr@phr:\space & \@name@fr \\%
  1321. \@fax@phr:\space & \@fax@fr \\ \hline%
  1322. \@hnto@phr:\space & \@name@to \\%
  1323. \@fax@phr:\space & \@fax@to \\ \hline%
  1324. \@re@phr: & \@re@line%
  1325. \end{tabular}}}}}%
  1326. \newcommand{\faxblockb}{%
  1327. {\parbox[t]{\textwidth}{\fbox{%
  1328. \begin{tabular}{llll}%
  1329. \@hnfr@phr:\space & \@name@fr & \@hnto@phr:\space & \@name@to \\%
  1330. \@fax@phr:\space & \@fax@fr & \@fax@phr:\space & \@fax@to \\%
  1331. \@phn@phr:\space & \@phn@fr & \@phn@phr:\space & \@phn@to \\%
  1332. \@re@phr: & \multicolumn{3}{l}{\parbox[t]{2in}{\@re@line}} \\%
  1333. \end{tabular}%
  1334. }}}}%
  1335. \newcommand{\ifempty}[3]{\ifthenelse{\equal{#1}{}}{#2}{#3}}%
  1336. \newcommand{\ifpempty}[3]{\ifthenelse{\equal{\protect#1}{}}{#2}{#3}}%
  1337. \newcommand{\@prnt@sec}[1]{% Actual printing of addresses here
  1338. \ifthenelse{#1=\@intd@pos}%
  1339. {\Prnt@Chk{@dt@p}{@dt@l}{@dt@c}{\@xdate}{}{\@dt@sk@b}{\@dt@sk@a}}{}%
  1340. \ifthenelse{#1=\@intf@pos}%
  1341. {\Prnt@Chk{@addr@fr@p}{@addr@fr@l}{@no@cen}%
  1342. {\usebox{\b@addr@fr}}{}{\@addr@fr@sk@b}{\@addr@fr@sk@a}}{}%
  1343. \ifthenelse{#1=\@intt@pos}%
  1344. {\Prnt@Chk{@addr@to@p}{@addr@to@l}{@no@cen}%
  1345. {\usebox{\b@addr@to}}{}{\@addr@to@sk@b}{\@addr@to@sk@a}}{}%
  1346. }%
  1347. \newcommand*{\openlfm}{%
  1348. \def\ifta{0}%
  1349. \ifthenelse{\boolean{@use@water}}%
  1350. {\ClearShipoutPicture%
  1351. \AddToShipoutPicture{\includegraphics[natheight=11in,natwidth=8.5in]{\@water@page}}%
  1352. }{}%
  1353. \ifthenelse{\boolean{@marg@Ruse}}% Here we set up right-side marginal notes
  1354. {\setlength{\@utile}{-\@Hgt@Head+\@marg@rt@tp@d}% Adjust column top to leftmargintopdist
  1355. \normalmarginpar%
  1356. \marginpar{\vspace*{\the\@utile} \hspace*{\@marg@rt@l}\hspace*{-\marginparsep} \@Rmarg}}{}%
  1357. \ifthenelse{\boolean{@marg@Luse}}% Here we set up left-side marginal notes
  1358. {\setlength{\@utile}{-\@Hgt@Head+\@marg@lt@tp@d}% Adjust column top to leftmargintopdist
  1359. \reversemarginpar\txa{Left margin}%
  1360. \marginpar{\vspace*{\the\@utile} \hspace*{\@marg@lt@l} \@Lmarg}}{}%
  1361. \ifpempty{\@LUheader}{}{\@LUheader \hfill}%
  1362. \ifpempty{\@CUheader}{}{\hfill \@CUheader \hfill}%
  1363. \ifpempty{\@RUheader}{}{\hfill \@RUheader}%
  1364. \txa{Running memosec}% Memo processing
  1365. \ifthenelse{\boolean{@memo@bl}}%
  1366. {{\memosec}\setboolean{@dt@p}{false}%
  1367. \setboolean{@no@spc}{true}}% %Memo
  1368. {}%
  1369. \txa{Running pressbegin}%
  1370. \ifthenelse{\boolean{@pr@p}}%
  1371. {\pressbegin% Press release processing
  1372. \txa{here we go again - out of pressbegin}
  1373. \setboolean{@no@spc}{true}}{}% % Press Release
  1374. \sbox{\b@addr@fr}{\noindent\setlength{\tabcolsep}{0pt}% Address-from into a box
  1375. \raggedleft\begin{tabular}{l@{}}%
  1376. \noindent\ignorespaces\@addr@fr%
  1377. \ifthenelse{\boolean{@addr@fr@t}}{\\ \@phn@phr: \@phn@fr}{}%
  1378. \ifthenelse{\boolean{@addr@fr@f}}{\\ \@fax@phr: \@fax@fr}{}%
  1379. \ifthenelse{\boolean{@addr@fr@e}}{\\ \@email@phr: \@email@fr}{}%
  1380. \end{tabular}}%
  1381. \settowidth{\@utilc}{\usebox{\b@addr@fr}}%
  1382. \sbox{\b@addr@fr}{\noindent\setlength{\tabcolsep}{0pt}%
  1383. \parbox[t]{\@utilc}{\noindent%
  1384. \begin{tabular}{l@{}}%
  1385. \ignorespaces\@addr@fr%
  1386. \ifthenelse{\boolean{@addr@fr@t}}{\\ \@phn@phr: \@phn@fr}{}%
  1387. \ifthenelse{\boolean{@addr@fr@f}}{\\ \@fax@phr: \@fax@fr}{}%
  1388. \ifthenelse{\boolean{@addr@fr@e}}{\\ \@email@phr: \@email@fr}{}%
  1389. \end{tabular}}}%
  1390. \sbox{\b@addr@to}{\noindent\setlength{\tabcolsep}{0pt}%Address-to into a box
  1391. \raggedleft\begin{tabular}{l@{}}%
  1392. \noindent\ignorespaces\@name@to \strut \\ \@addr@to%
  1393. \ifthenelse{\boolean{@addr@to@t}}{\\ \@phn@phr: \@phn@to}{}%
  1394. \ifthenelse{\boolean{@addr@to@f}}{\\ \@fax@phr: \@fax@to}{}%
  1395. \ifthenelse{\boolean{@addr@to@e}}{\\ \@email@phr: \@email@to}{}%
  1396. \end{tabular}}%
  1397. \settowidth{\@utild}{\usebox{\b@addr@to}}%
  1398. \sbox{\b@addr@to}{\noindent\setlength{\tabcolsep}{0pt}%
  1399. \parbox[t]{\@utild}{\noindent%
  1400. \begin{tabular}{l@{}}%
  1401. \ignorespaces\@name@to \strut \\ \@addr@to%
  1402. \ifthenelse{\boolean{@addr@to@t}}{\\ \@phn@phr: \@phn@to}{}%
  1403. \ifthenelse{\boolean{@addr@to@f}}{\\ \@fax@phr: \@fax@to}{}%
  1404. \ifthenelse{\boolean{@addr@to@e}}{\\ \@email@phr: \@email@to}{}%
  1405. \end{tabular}}}%
  1406. \ifthenelse{\boolean{@no@spc}}{}{%
  1407. \ifthenelse{\boolean{@s@b@s}}{\par\noindent{\usebox{\b@addr@to} \hfill \usebox{\b@addr@fr}}}{}%
  1408. \setcounter{@c@pos}{1} \@prnt@sec{\the@c@pos}% Print from and to addresses and date
  1409. \setcounter{@c@pos}{2} \@prnt@sec{\the@c@pos}%
  1410. \setcounter{@c@pos}{3} \@prnt@sec{\the@c@pos}%
  1411. \setboolean{@greet@l}{true}%
  1412. \ifthenelse{\boolean{@pt@regard}}{\@regard@phr: \@regard@line}{}%
  1413. \Prnt@Chk{@greet@p}{@greet@l}{@no@cen}%
  1414. {\par\@greet@to\par\nobreak}{}{}{\@greet@to@sk@a}%
  1415. }%
  1416. \txa{End of openlfm}%
  1417. }%
  1418. \def\ifta{0}
  1419. \def\@fix@one@box{%
  1420. \settowidth{\@utila}{\setlength{\tabcolsep}{0pt}%
  1421. \begin{tabular}{l}%
  1422. \hspace*{1pt}%
  1423. \vspace*{\@cls@sk@b} \\%
  1424. \ifthenelse{\boolean{@use@close}}{{\@closeline}\\}{}%
  1425. \vspace*{\@cls@sk@a} \\%
  1426. \ifthenelse{\boolean{@use@sig}}%
  1427. {{\@sig@fr}\\}{\parbox[t][\the\@sig@sp][t]{.1pt}{\vspace*{\@sig@sp}}\\}%
  1428. \ifthenelse{\boolean{@use@sig@nm}}{\@sig@nm\\}{\@name@fr\\}%
  1429. \end{tabular}%
  1430. }%
  1431. \sbox{\@sig@box@b} {\begin{tabular}{p{\the\@utila}}%
  1432. \hspace*{1pt}\vspace*{\@cls@sk@b} \\%
  1433. \ifthenelse{\boolean{@use@close}}{{\@closeline}\\}{}%
  1434. \vspace*{\@cls@sk@a} \\%
  1435. \ifthenelse{\boolean{@use@sig}}%
  1436. {{\@sig@fr}\\}{\parbox[t][\the\@sig@sp][t]{.1pt}{\vspace*{\@sig@sp}}\\}%
  1437. \ifthenelse{\boolean{@use@sig@nm}}{\@sig@nm\\}{\@name@fr\\}%
  1438. \end{tabular}}}%
  1439. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  1440. \def\closlfm{\def\ifta{0}\txa{In closlfm}%
  1441. \setlength{\@utila}{\@sig@sk@b}\addtolength{\@utila}{-1.5\baselineskip}%
  1442. \vspace*{\the\@utila}\noindent\setlength{\tabcolsep}{0pt}%
  1443. \ifthenelse{\boolean{@pr@p}}%
  1444. {\medskip\begin{center}\@PRend@phr\end{center}%
  1445. \markboth{}{}%
  1446. }% markboth mechanism resets center footer
  1447. {}% note require {} to finish ifthenelse
  1448. %%%%%
  1449. \ifthenelse{\boolean{@mult@sig}}%
  1450. {%\begin{flushleft}%
  1451. \ifthenelse{\equal{\the@sig@tot}{1}}{\def\@sig@tab{l}}{}% Set multiple columns
  1452. \ifthenelse{\equal{\the@sig@tot}{2}}{\def\@sig@tab{ll}}{}%
  1453. \ifthenelse{\equal{\the@sig@tot}{3}}{\def\@sig@tab{lll}}{}%
  1454. \ifthenelse{\equal{\the@sig@tot}{4}}{\def\@sig@tab{llll}}{}%
  1455. \setlength{\@utilb}{0pt}\setlength{\@utila}{0pt}% Reset counters to 0
  1456. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  1457. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  1458. \@for\@one@sig:=\@sig@list\do%
  1459. {\setboolean{@use@sig}{false}\setboolean{@use@close}{false}%
  1460. \setboolean{@use@sig@nm}{false}%
  1461. \expandafter\csname sig\@one@sig\endcsname%
  1462. \@fix@one@box\settowidth{\@utild}{\usebox{\@sig@box@b}}%
  1463. \ifthenelse{\lengthtest{\@utila<\@utild}}{\setlength{\@utila}{\@utild}}{}%
  1464. \settoheight{\@utilc}{\usebox{\@sig@box@b}}\settodepth{\@utild}{\usebox{\@sig@box@b}}%
  1465. \addtolength{\@utilc}{\@utild}% Find total depth
  1466. \ifthenelse{\lengthtest{\@utilb<\@utilc}}{\setlength{\@utilb}{\@utilc}}{}}%
  1467. \setcounter{@lab@cnt@col}{0}%
  1468. \setlength{\@utile}{0pt}% Set up for number signatures across
  1469. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  1470. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  1471. \@for\@one@sig:=\@sig@list\do% Loop thru signature abbreviations
  1472. {\setboolean{@use@sig}{false}\setboolean{@use@close}{false}%
  1473. \setboolean{@use@sig@nm}{false}%
  1474. \txa{\the\@utile}%
  1475. \ifthenelse{\equal{\the@lab@cnt@col}{0}}{~\vspace*{\the\@utile}\\\noindent}{}%
  1476. \expandafter\csname sig\@one@sig\endcsname%
  1477. \ignorespaces \@fix@one@box\settoheight{\@utilc}{\usebox{\@sig@box@b}}%
  1478. \settodepth{\@utild}{\usebox{\@sig@box@b}}\addtolength{\@utilc}{\@utild}%
  1479. \ifthenelse{\equal{\the@sig@tot}{1}}{\setlength{\@utilb}{\@utilc}}{}%
  1480. \addtolength{\@utilc}{-\@utilb}%
  1481. \raisebox{-\the\@utilc/2}{\parbox[t]{\the\@utila}{\usebox{\@sig@box@b}}}%
  1482. \addtocounter{@lab@cnt@col}{1}%
  1483. \ifthenelse{\equal{\the@lab@cnt@col}{\the@sig@tot}}%
  1484. {\txa{else condition}%
  1485. \setcounter{@lab@cnt@col}{0}\setlength{\@utile}{\@sig@sk@r}}{\hspace*{\the\@sig@sk@c}}}%
  1486. \vspace*{\the\@sig@sk@a}%\end{flushleft}
  1487. }%
  1488. {% Print normal signature
  1489. \def\ifta{0}
  1490. \@fix@one@box\settowidth{\@utila}{\usebox{\@sig@box@b}}% Set up box, measure
  1491. \ifthenelse{\boolean{@sig@l}}{\txa{@sig@l:true}}{\txa{@sig@l:false}}
  1492. \ifthenelse{\boolean{@sig@c}}{\txa{@sig@c:true}}{\txa{@sig@c:false}}
  1493. \Prnt@Chk{@sig@p}{@sig@l}{@sig@c}%
  1494. {\parbox{\@utila}{\usebox{\@sig@box@b}}}{}{\@cls@sk@b}{\@sig@sk@a}}%
  1495. \ifthenelse{\boolean{@resta@l}}{\newpage\usebox{\@resta@ltr}}{}%
  1496. \ifthenelse{\boolean{@restb@l}}{\newpage\usebox{\@restb@ltr}}{}%
  1497. \ifthenelse{\boolean{@restc@l}}{\newpage\usebox{\@restc@ltr}}{}%
  1498. \ifthenelse{\boolean{@restd@l}}{\newpage\usebox{\@restd@ltr}}{}%
  1499. \ifthenelse{\boolean{@reste@l}}{\newpage\usebox{\@reste@ltr}}{}%
  1500. }%
  1501. \def\@post@sig@bl#1#2#3{%
  1502. \setlength{\@utilb}{\textwidth}%
  1503. \settowidth{\@utila}{{\small\normalfont #1: }}%
  1504. \addtolength{\@utilb}{-\@utila}%
  1505. \ifthenelse{\equal{#2}{#3}}{}{%
  1506. \vspace*{\the\@post@sig@sp@b} \hspace*{-.01pt} \\ \noindent%
  1507. \parbox[t]{\textwidth}{\@hangfrom{{\small\normalfont #1: }}%
  1508. \ignorespaces \parbox[t]{\@utilb}{{\small#2}}\strut}\par%
  1509. \vspace*{\the\@post@sig@sp@a}%
  1510. }}%
  1511. \newif \if@read@one \@read@onetrue%
  1512. \def\@ltr@info@name{letrinfo.tex}%
  1513. \define@key{ov}{InfoFileName}{\def\@ltr@info@name{#1}}%
  1514. \InputIfFileExists{\@ltr@info@name}%
  1515. {\typeout{Reading default letter definitions from \@ltr@info@name}}%
  1516. {\typeout{\@ltr@info@name\ not found. All letter definitions must be in newlfm.cls}}%
  1517. \gdef\npind{0}%
  1518. \def\ltrbody#1{\protect\def\@ltr@body{#1}}%
  1519. \DeclareRobustCommand{\letterbody}[1]{\def\@ltr@body{#1}}%
  1520. \DeclareRobustCommand*{\doltr}[1]%
  1521. {#1 \begin{newlfm} \@ltr@body \end{newlfm} \gdef\npind{B} % \newpage%
  1522. \ifthenelse{\boolean{@env@open}}{}{}}%
  1523. \DeclareRobustCommand*{\@env@label}[1]{#1\parbox[t][\@lab@bh][t]{\@lab@bw}%
  1524. {{\@name@to \\ \@addr@to} \hfill}}%
  1525. \DeclareRobustCommand*{\@env@oth}[2]{%
  1526. \txa{box height:\the\@lab@bh, box width:\the\@lab@bw, between: \the\tabcolsep}%
  1527. \parbox[t][\@lab@bh][t]{\@lab@bw}{\@lab@size \strut #1 \\ #2 \strut}}%
  1528. \DeclareRobustCommand*{\@env@row}[4]{\settowidth{\@utila}{\@hnfr@phr:}%
  1529. \setlength{\tabcolsep}{0pt}%
  1530. \fbox{\parbox[t][\@lab@bh][t]{\@lab@bw}{%
  1531. \@lab@size \begin{tabular}{ll}{\Large\@hnfr@phr:}&{\Large\@hnto@phr:}\\%
  1532. \parbox[t]{2.0in}{#3\\#4}&\parbox[t]{2.0in}{#1\\#2}%
  1533. \end{tabular}\hfill}}}%
  1534. \DeclareRobustCommand*{\@env@col}[4]{\parbox[t][\@lab@bh][t]{\@lab@bw}{%
  1535. {\@lab@size{\Large\@hnfr@phr:}\\#3\\#4\\{\Large\@hnto@phr:}\\#1\\#2}}}%
  1536. \DeclareRobustCommand*{\x@env@col}[4]{\parbox[t][\@lab@bh][t]{\@lab@bw}{%
  1537. {\@lab@size\begin{tabular}{p{.5in}p{3.25in}}{\Large\@hnfr@phr:}&#3\\&\parbox[t]{3.25in}{#4}%
  1538. \vspace*{10pt}\\{\Large\@hnto@phr:}&#1\\&\parbox[t]{3.25in}{#2}\\\end{tabular}}}}%
  1539. \def\multletter#1{\@for\@addr@x:=#1\do{{\oneletter{\@addr@x}}}}%
  1540. \def\doletter#1{\setadrto{#1}\txa{ZA}%
  1541. \begin{newlfm}\@ltr@body\end{newlfm}\gdef\npind{D}\newpage}%
  1542. \def\oneletter#1{\txa{In oneletter}\setadrto{\csname adr#1\endcsname}\txa{ZB}\addrt{#1}%
  1543. \begin{newlfm}\@ltr@body\end{newlfm}\gdef\npind{E}}%
  1544. \DeclareRobustCommand*{\@env@ext}[1]{\txa{#1:1}%
  1545. \setadrto{\csname adr#1\endcsname}\txa{ZC}\txa{#1:2}%
  1546. \@env@oth{\@name@to}{\@addr@to}\txa{#1:3}}%
  1547. \def\clearall{\def\@ltr@h{}\def\@adr@t{}\def\@adr@f{}\def\@sig@b{}%
  1548. \setboolean{@ov@t}{false}\setboolean{@ov@f}{false}
  1549. \setboolean{@ov@s}{false}\setboolean{@ov@l}{false}}%
  1550. \def\makeenvst{}%
  1551. \def\makeenvfn{%
  1552. \def\ifta{0}%
  1553. \ClearShipoutPicture%
  1554. \nolines\dateset{}\clearall\noheadline\noHeadline\@dim@resetfalse
  1555. \setboolean{@Hl}{false}\setlength{\@Hrw}{0pt}%
  1556. \setboolean{@hl}{false}\setlength{\@hrw}{0pt}%
  1557. \setboolean{@Fl}{false}\setlength{\@Frw}{0pt}%
  1558. \setboolean{@fl}{false}\setlength{\@frw}{0pt}%
  1559. \@clear@box%
  1560. \def\headrulewidth{0pt}%
  1561. \def\footrulewidth{0pt}%
  1562. \setboolean{@ov@a}{false}\setboolean{@fax@RA}{false}%
  1563. \setboolean{@fax@RU}{false}\setboolean{@fax@hdr@pg}{false}%
  1564. \setboolean{@no@spc}{true}\setboolean{@B@f}{false}%
  1565. \setboolean{@B@h}{false}\setboolean{@B@l}{false}%
  1566. \setboolean{@B@r}{false}\setboolean{@b@f}{false}%
  1567. \setboolean{@b@h}{false}\setboolean{@b@l}{false}%
  1568. \setboolean{@b@r}{false}\setboolean{@sig@p}{false}%
  1569. \setboolean{@sig@mp}{false}\setboolean{@env@open}{false}%
  1570. \ifthenelse{\lengthtest{\@lab@th<12pt}}{\setlength{\@lab@th}{12.1pt}}{}%
  1571. \ifthenelse{\boolean{@use@envlab}}{%
  1572. \def\ifta{0}%
  1573. \setpage{11in}{8.5in}{-1in}{72pt}{0in}{-1in}{120pt}{0in}{20pt}%
  1574. \txa{use@envlab true}%
  1575. }%
  1576. {%
  1577. \gdef\npind{A3}%
  1578. \setpage{\@lab@pl}{8.5in}{-1in}{\@lab@lm}{0in}{-1in}{\@lab@th}{0in}{20pt}%
  1579. \txa{use@envlab false}%
  1580. \txa{headheight:\the\@lab@th}%
  1581. }%
  1582. \setboolean{@in@makeenv}{true}%
  1583. \begin{newlfm}\pagestyle{empty}\thispagestyle{empty}%
  1584. \def\ifta{0}%
  1585. \showdim{Start of makeenvfn}%
  1586. \@nlfm@util=0%
  1587. \setcounter{@lab@cnt@col}{0} \setcounter{@lab@cnt@row}{0}%
  1588. \setboolean{@env@open}{true} \setboolean{@env@close}{true}%
  1589. \setboolean{@ztila}{false}%
  1590. \def\ifta{0}%
  1591. \txa{Count:\number\@nlfm@addr,Test:\number\@nlfm@util}%
  1592. \setboolean{@do@any}{false}%
  1593. \loop \ifnum\number\@nlfm@util<\number\@nlfm@addr%
  1594. \global\advance\@nlfm@util by1%
  1595. \txa{Loop S Count: \number\@nlfm@util}%
  1596. \setboolean{@do@any}{true}%
  1597. \def\@onet{\csname @aadr@t\number\@nlfm@util\endcsname}%
  1598. \def\@onef{\csname @aadr@f\number\@nlfm@util\endcsname}%
  1599. \txa{\string\@onet:\@onet -- \string\@onef:\@onef}
  1600. \protect\setadrto{\csname adr\@onet\endcsname}\txa{ZD}%
  1601. \protect\setadrfr{\csname adr\@onef\endcsname}%
  1602. \def\ifta{0}%
  1603. \txa{To: adr\@onet,\@name@to --- From: \@name@fr,adr\@onef --- Just:\@tab@just}%
  1604. \txa{@aadr@t\number\@nlfm@util: \csname @aadr@t\number\@nlfm@util\endcsname}%
  1605. \ifthenelse{\boolean{@env@open}}%
  1606. {\setcounter{@lab@cnt@row}{0}\txa{New page}%
  1607. \setboolean{@env@open}{false} \setboolean{@env@close}{true}%
  1608. \def\ifta{0}%
  1609. \showdim{Checking values before newpage}%
  1610. \gdef\npind{C}%
  1611. \ifthenelse{\boolean{@ztila}}{\newpage}{}%
  1612. \setboolean{@ztila}{true}%
  1613. \showdim{Checking values after newpage}%
  1614. \def\ifta{0}%
  1615. \setlength{\tabcolsep}{\@lab@bl} \begin{table}[t] \begin{tabular}{\@tab@just}%
  1616. \txa{Starting table}%
  1617. }%
  1618. {}%
  1619. \ifthenelse{\boolean{@lab@t}}%
  1620. {\txa{Label to only}\@env@oth{\@name@to}{\@addr@to}}{}%
  1621. \ifthenelse{\boolean{@lab@rft}}%
  1622. {\txa{Label row from to}\@env@row{\@name@to}{\@addr@to}{\@name@fr}{\@addr@fr}}{}%
  1623. \ifthenelse{\boolean{@lab@cft}}%
  1624. {\txa{Label col from to}\@env@col{\@name@to}{\@addr@to}{\@name@fr}{\@addr@fr}}{}%
  1625. \addtocounter{@lab@cnt@col}{1}%
  1626. \ifthenelse{\equal{\the@lab@cnt@col}{\the@lab@tot@col}}%
  1627. {\addtocounter{@lab@cnt@row}{1}\setcounter{@lab@cnt@col}{0}%
  1628. \txa{Ending row}\\}%
  1629. {\txa{Ending column}&}%
  1630. \ifthenelse{\equal{\the@lab@cnt@row}{\the@lab@tot@row}}%
  1631. {\setcounter{@lab@cnt@row}{0}\setcounter{@lab@cnt@col}{0}%
  1632. \txa{Ending table}\\ \end{tabular}\end{table}%
  1633. \setboolean{@env@close}{false} \setboolean{@env@open}{true}%
  1634. }%
  1635. {}%
  1636. \def\ifta{0}%
  1637. \txa{Loop E Count: \number\@nlfm@util}%
  1638. \repeat%
  1639. \txa{Ending table}%
  1640. \txa{Out of big loop: \arabic{@lab@cnt@col}}%
  1641. \def\ifta{0}%
  1642. \global\@nlfm@uta=\value{@lab@cnt@row}%
  1643. \sbox{\@x@l}{\phantom{A}}
  1644. \ifthenelse{\boolean{@env@close} \and \boolean{@do@any}}
  1645. {\txa{\the@lab@cnt@col, \the@lab@cnt@row, \the@lab@tot@row}
  1646. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  1647. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  1648. \ifthenelse{\equal{\arabic{@lab@cnt@col}}{0}}{}%
  1649. {\whiledo{\the@lab@cnt@col<\the@lab@tot@col}%
  1650. {\@env@oth{\usebox{\@x@l}}{\usebox{\@x@l}}%
  1651. \addtocounter{@lab@cnt@col}{1}%
  1652. \ifthenelse{\the@lab@cnt@col<\the@lab@tot@col}{&}{}} \\%
  1653. \addtocounter{@lab@cnt@row}{1}
  1654. }%
  1655. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  1656. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  1657. \whiledo{\the@lab@cnt@row<\the@lab@tot@row}%
  1658. {\setcounter{@lab@cnt@col}{0}%
  1659. \whiledo{\the@lab@cnt@col<\the@lab@tot@col}%
  1660. {\@env@oth{\usebox{\@x@l}}{\usebox{\@x@l}}%
  1661. \addtocounter{@lab@cnt@col}{1}%
  1662. \ifthenelse{\the@lab@cnt@col<\the@lab@tot@col}{&}{\\}
  1663. }%
  1664. \addtocounter{@lab@cnt@row}{1}%
  1665. \ifthenelse{\the@lab@cnt@row<\the@lab@tot@row}
  1666. {}%
  1667. {\\ \end{tabular}\end{table} \newpage%
  1668. \showdim{At the end of the table}}%
  1669. \setboolean{@env@close}{false}%
  1670. \setboolean{@env@open}{true}%
  1671. }%
  1672. }%
  1673. {}%
  1674. \setboolean{@use@envlab}{false}%
  1675. \end{newlfm}%
  1676. \def\ifta{0}%
  1677. }%
  1678.  
  1679. \newcommand{\@zfancyvbox}[2]{
  1680. \gdef\@zpqutil{1pt}
  1681. \setbox0\vbox{#2}\ifdim\ht0>#1
  1682. \setlength{\@utill}{\the\ht0}
  1683. \addtolength{\@utill}{-#1}
  1684. \addtolength{\@utill}{5.0pt}
  1685. \txa{utill:\the\@utill}
  1686. \xdef\@zpqutil{\the\@utill}
  1687. \txa{@zpqutil:\@zpqutil}
  1688. \fi
  1689. }
  1690. \newcommand{\@zfancyhead}[5]{#1\hbox to\headwidth{\f@nch@reset
  1691. \@zfancyvbox\headheight{\hbox
  1692. {\rlap{\parbox[b]{\headwidth}{\raggedright#2}}\hfill
  1693. \parbox[b]{\headwidth}{\centering#3}\hfill
  1694. \llap{\parbox[b]{\headwidth}{\raggedleft#4}}}\zheadrule}}#5}
  1695.  
  1696. \newcommand{\@zfancyfoot}[5]{#1\hbox to\headwidth{\f@nch@reset
  1697. \@zfancyvbox\footskip{\zfootrule
  1698. \hbox{\rlap{\parbox[t]{\headwidth}{\raggedright#2}}\hfill
  1699. \parbox[t]{\headwidth}{\centering#3}\hfill
  1700. \llap{\parbox[t]{\headwidth}{\raggedleft#4}}}}}#5}
  1701.  
  1702. \newcommand{\zheadrule}{{\if@fancyplain\let\headrulewidth\plainheadrulewidth\fi
  1703. \hrule\@height\headrulewidth\@width\headwidth \vskip-\headrulewidth}}
  1704.  
  1705. \newcommand{\zfootrule}{{\if@fancyplain\let\footrulewidth\plainfootrulewidth\fi
  1706. \vskip-\footruleskip\vskip-\footrulewidth
  1707. \hrule\@width\headwidth\@height\footrulewidth\vskip\footruleskip}}
  1708.  
  1709. \newenvironment{newlfm}{% Start of fax environment, in fax class%
  1710. \if@read@one \global\@read@onefalse \fi%
  1711. \def\ifta{0}\txa{Start of newlfm startup}%
  1712. \ifthenelse{\boolean{@ov@a}}{\txa{oa: t}}{\txa{oa: f}}%
  1713. \ifthenelse{\boolean{@ov@t}}{\txa{ot: t}}{\txa{ot: f}}%
  1714. \ifthenelse{\boolean{@ov@f}}{\txa{of: t}}{\txa{of: f}}%
  1715. \ifthenelse{\boolean{@ov@l}}{\txa{ol: t}}{\txa{ol: f}}%
  1716. \ifthenelse{\boolean{@ov@s}}{\txa{os: t}}{\txa{os: f}}%
  1717. \txa{nameto: \@name@to}%
  1718. \txa{namefrom: \@name@fr}%
  1719. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  1720. %%%% Begin with fax cover page
  1721. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  1722. \ifthenelse{\boolean{@ov@a}}{\faxblocka}{}%
  1723. \ifthenelse{\boolean{@fax@RA}}%
  1724. {\ifthenelse{\boolean{@fax@bla}}{\Rheader{\usebox{\fba}}}{}%
  1725. \ifthenelse{\boolean{@fax@blb}}{\Rheader{\faxblockb}}{}}{}%
  1726. \ifthenelse{\boolean{@fax@RU}}%
  1727. {\txa{setting up ruh}%
  1728. \ifthenelse{\boolean{@fax@bla}}{\RUheader{\faxblocka}}{}%
  1729. \ifthenelse{\boolean{@fax@blb}}{\RUheader{\faxblockb}}{}}{}%
  1730. \ifthenelse{\boolean{@ov@a}}{%
  1731. \ifthenelse{\boolean{@ov@l}}{\expandafter\csname lth\@ltr@h \endcsname}{}%
  1732. \ifthenelse{\boolean{@ov@t}}{\setadrto{\expandafter\csname adr\@adr@t \endcsname}}{}%
  1733. \ifthenelse{\boolean{@ov@f}}{\setadrfr{\expandafter\csname adr\@adr@f \endcsname}}{}%
  1734. \ifthenelse{\boolean{@ov@s}}{\expandafter\csname sig\@sig@b \endcsname}{}%
  1735. \@set@em@up
  1736. }{}%
  1737. \txa{setting up ruh}%
  1738. \def\ifta{0}%
  1739. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  1740. \txa{name@to:\@name@to}%
  1741. \ifthenelse{\boolean{@ov@t}}{\txa{oversetto:true}}{\txa{oversetto:false}}%
  1742. \txa{name@fr:\@name@fr}%
  1743. \ifthenelse{\boolean{@ov@f}}{\txa{oversetfr:true}}{\txa{oversetfr:false}}%
  1744. \retdims%
  1745. \ifthenelse{\boolean{@fax@hdr@pg}}%
  1746. {{\txa{FAX Page Setup}%
  1747. \def\ifta{0}%
  1748. \showdim{Before resetting dimensions for fax}%
  1749. \faxpage%
  1750. \def\ifta{0}%
  1751. \showdim{After resetting dimensions for fax}%
  1752. \showdim{After restoring dimensions for fax}%
  1753. \txa{Before newpage issued}%
  1754. \txa{After newpage issued}%
  1755. \showdim{After fax page setup}%
  1756. }}{}%
  1757. \rstdims%
  1758. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  1759. \def\ifta{0}\showdim{After fax page section closes}\gdef\npind{G}%
  1760. \if@twoside \ifodd\c@page%
  1761. \else\thispagestyle{empty}\null\newpage\fi \fi%
  1762. \c@page\@ne%
  1763. \interlinepenalty=200 % smaller than the TeXbook value%
  1764. \setlength{\headwidth}{\textwidth}%
  1765. \txa{Before Rfooter}\ifthenelse{\boolean{@B@f}}%
  1766. {\Cfooter{\phantom{\Cfooter}} \Rfooter{\phantom{\Rfooter}} \Lfooter{\phantom{\Lfooter}}} {}%
  1767. \txa{Before Rheader}\ifthenelse{\boolean{@B@h}}%
  1768. {\Rheader{\phantom{\Rheader}} \Lheader{\phantom{\Lheader}} \Cheader{\phantom{\Cheader}}} {}%
  1769. \txa{Before Lmargin}\ifthenelse{\boolean{@B@l}}%
  1770. {\ifempty{\@Lmarg}{}{\Lmargin{\phantom{\Lmargin}}}}{}%
  1771. \txa{Before Rmargin}\ifthenelse{\boolean{@B@r}}%
  1772. {\ifempty{\@Rmarg}{}{\Rmargin{\phantom{\Rmargin}}}}{}%
  1773. \txa{Before rfooter}\ifthenelse{\boolean{@b@f}}%
  1774. {\rfooter{\phantom{\rfooter}} \lfooter{\phantom{\lfooter}} \cfooter{\phantom{\cfooter}}} {}%
  1775. \txa{Before rheader}\ifthenelse{\boolean{@b@h}}%
  1776. {\rheader{\phantom{\rheader}} \lheader{\phantom{\lheader}} \cheader{\phantom{\cheader}}} {}%
  1777. \txa{Before lmargin}\ifthenelse{\boolean{@b@l}}%
  1778. {\lmargin{\phantom{\lmargin}}} {}%
  1779. \txa{Before rmargin}\ifthenelse{\boolean{@b@r}}%
  1780. {\rmargin{\phantom{\rmargin}}} {}%
  1781. \setlength{\textwidth}{\paperwidth-\@marg@rt-\@marg@lt-1pt}%
  1782. \txa{Before opening}%
  1783. \txa{\string\@marg@rt: \the\@marg@rt, \string\@marg@rt: \the\@marg@rt}%
  1784. \txa{\string\textwidth: \the\textwidth, \string\paperwidth: \the\paperwidth}%
  1785. \openlfm%
  1786. \def\ifta{0}%
  1787. \txa{nameto:\@name@to}%
  1788. \txa{namefr:\@name@fr}%
  1789. \txa{\string\@marg@rt: \the\@marg@rt, \string\@marg@rt: \the\@marg@rt}%
  1790. \txa{\string\textwidth: \the\textwidth, \string\paperwidth: \the\paperwidth}%
  1791. \txa{After opening}%
  1792. \def\ifta{0}%
  1793. \txa{\string\@marg@rt: \the\@marg@rt, \string\@marg@rt: \the\@marg@rt}%
  1794. \txa{\string\textwidth: \the\textwidth, \string\paperwidth: \the\paperwidth}%
  1795. \txa{Before pagestyle}%
  1796. \pagestyle{othhead}\thispagestyle{ltrhead}%
  1797. \def\ifta{0}%
  1798. \txa{After pagestyle}%
  1799. \ifthenelse{\boolean{@in@makeenv}}{\txa{makeenv true}}{\txa{makeenv false}%
  1800. \global\advance \@nlfm@addr by1%
  1801. \txa{Count: \number\@nlfm@addr -- To: \@adr@t -- From: \@adr@f}%
  1802. \expandafter\xdef\csname @aadr@t\number\@nlfm@addr\endcsname{\@adr@t}%
  1803. \expandafter\xdef\csname @aadr@f\number\@nlfm@addr\endcsname{\@adr@f}%
  1804. \txa{Count: \number\@nlfm@addr -- To: \@adr@t -- From: \@adr@f}
  1805. \txa{@aadr@t\number\@nlfm@addr: \csname @aadr@t\number\@nlfm@addr\endcsname}%
  1806. \txa{To: \csname @aadr@t\number\@nlfm@addr\endcsname,\@adr@t}%
  1807. }%
  1808. \showdim{Dimensions at end of newlfm startup section}\def\ifta{0}%
  1809. }%
  1810. {% Here we are at the processing of the close of the newlfm env
  1811. \def\ifta{0}\txa{At the start of the close of newlfm env}%
  1812. \ifthenelse{\boolean{@pr@p}}{\closlfm}{}%
  1813. \ifthenelse{\boolean{@sig@p}}%
  1814. {\txa{Before closing}%
  1815. \ifthenelse{\boolean{@pr@p}}{}{\closlfm}%
  1816. \txa{After closing}%
  1817. \showdim{Current Dimensions}%
  1818. \@post@sig@bl{\@ps@phr}{\@ps@item}{---BLANK---}%
  1819. \@post@sig@bl{\@pps@phr}{\@pps@item}{---BLANK---}%
  1820. \@post@sig@bl{\@ppps@phr}{\@ppps@item}{---BLANK---}%
  1821. \@post@sig@bl{\@encl@phr}{\@encl@item}{---BLANK---}%
  1822. \@post@sig@bl{\@cc@phr}{\@cc@item}{---BLANK---}}{}%
  1823. \ifthenelse{\boolean{@sig@mp}}{%
  1824. \@post@sig@bl{\@ps@phr}{\@ps@item}{---BLANK---}%
  1825. \@post@sig@bl{\@pps@phr}{\@pps@item}{---BLANK---}%
  1826. \@post@sig@bl{\@ppps@phr}{\@ppps@item}{---BLANK---}%
  1827. \@post@sig@bl{\@encl@phr}{\@encl@item}{---BLANK---}%
  1828. \@post@sig@bl{\@cc@phr}{\@cc@item}{---BLANK---}}{}%
  1829. \ifthenelse{\boolean{@env@open}}{}{}%
  1830. \txa{Before the pagebreak}%
  1831. \gdef\npind{J}%
  1832. \stopletter\@@par\pagebreak\@@par%
  1833. \immediate\write\@auxout{\string\newlabel{totpage}{{\thepage}{0}}}%
  1834. \@clear@box%
  1835. \global\@read@onetrue%
  1836. \setboolean{@s@b@s}{false}%
  1837. \ifthenelse{\boolean{@pr@p}}{%
  1838. \ifthenelse{\boolean{@space@d}}{\end{doublespace}}{\end{singlespace}}%
  1839. }{}%
  1840. }%
  1841. \def\@make@big@env{%
  1842. \@nlfm@util=0%
  1843. \def\ifta{0}%
  1844. \txa{In @make@big@env}%
  1845. \txa{Count: \number\@nlfm@addr}%
  1846. \txa{ZI}%
  1847. \txa{@aadr@t\number\@nlfm@addr: \csname @aadr@t\number\@nlfm@addr\endcsname}%
  1848. \txa{To: \csname @aadr@t\number\@nlfm@addr\endcsname,\@adr@t}%
  1849. \loop \ifnum\@nlfm@util < \@nlfm@addr%
  1850. \advance\@nlfm@util by1%
  1851. \def\@onet{\expandafter\csname @aadr@t\number\@nlfm@util\endcsname}%
  1852. \def\@onef{\expandafter\csname @aadr@f\number\@nlfm@util\endcsname}%
  1853. \setadrto{\expandafter\csname adr\@onet\endcsname}\txa{ZF}%
  1854. \setadrfr{\expandafter\csname adr\@onef\endcsname}%
  1855. \gdef\npind{I}%
  1856. \newpage%
  1857. \def\ifta{0}%
  1858. \gdef\npind{A4}%
  1859. \setpage{11in}{8.5in}{1in}{1in}{0pt}{0in}{120in}{0in}{0in}%
  1860. \txa{Actually using the makeenvelope...}%
  1861. \startlabels%
  1862. \@capitalizeaddressfalse%
  1863. \txa{From: \@name@fr}%
  1864. \txa{To: \@name@to}%
  1865. \mlabel{\@name@fr \hspace*{.1pt} \\ \@addr@fr \hspace*{.1pt}}%
  1866. {\@name@to \hspace*{.1pt} \\ \@addr@to \hspace*{.1pt}}%
  1867. \txa{From: \@name@fr}%
  1868. \txa{To: \@name@to}%
  1869. \repeat%
  1870. \global\@nlfm@addr=0%
  1871. \txa{Count at end: \number\@nlfm@addr}%
  1872. }%
  1873. \def\@clear@box{%
  1874. \Background{}\background{}\Lfooter{}\Cfooter{}\Rfooter{}\LOfooter{}%
  1875. \COfooter{}\ROfooter{}\lfooter{}\cfooter{}\rfooter{}\Lheader{}%
  1876. \Cheader{}\Rheader{}\LUheader{}\CUheader{}\RUheader{}\lheader{}%
  1877. \cheader{}\rheader{}\Rmargin{}\Lmargin{}\rmargin{}\lmargin{}%
  1878. }%
  1879. \newcommand{\pgrph}[1]{{\bf #1}}%
  1880. \pagestyle{ltrhead}%
  1881. \pagenumbering{arabic}%
  1882. \raggedbottom%
  1883. \providecommand{\@texttop}{}%
  1884. \DeclareRobustCommand*{\@texttop}
  1885. {\ifnum\c@page=1\vskip \z@ plus.00006fil\relax\fi}%
  1886. \onecolumn%
  1887. \def\@set@em@up{%
  1888. \txa{Real start}%
  1889. \ifthenelse{\boolean{@pr@p}}{%
  1890. \PhrMore{\thepage\ of \pageref{LastPage}}
  1891. \Cfooter{\@more@phr}\cfooter{\@more@phr}%
  1892. }{}%
  1893. \def\ifta{0}\txa{Start of @set@em@up}%
  1894. \ifthenelse{\boolean{@set@env}}{\makeenvst\txa{Making envelope}}{}%
  1895. \ifthenelse{\boolean{@Hl}}%
  1896. {\def\headrulewidth{\the\@Hrw}}%
  1897. {\setlength{\@Hrw}{0pt}\def\headrulewidth{0pt}}%
  1898. \ifthenelse{\boolean{@Fl}}%
  1899. {\def\footrulewidth{\the\@Frw}}%
  1900. {\setlength{\@Frw}{0pt}\def\footrulewidth{0pt}}%
  1901. \def\ifta{0}\txa{Here in the middle}%
  1902. \settowidth{\@utili}{\@Lheader}%
  1903. \settowidth{\@utilj}{\@Cheader}%
  1904. \settowidth{\@utilk}{\@Rheader}%
  1905. \begin{lrbox}{\@x@l}\begin{minipage}{\@utili}\@Lheader\end{minipage}\end{lrbox}%
  1906. \begin{lrbox}{\@x@c}\begin{minipage}{\@utilj}\@Cheader\end{minipage}\end{lrbox}%
  1907. \begin{lrbox}{\@x@r}\begin{minipage}{\@utilk}\@Rheader\end{minipage}\end{lrbox}%
  1908. \ifthenelse{\boolean{@Ch@use}}%
  1909. {\settoheight{\@Hgt@H@C}{\strut\usebox{\@x@c}\strut}\settodepth{\@Dth@H@C}{\strut\usebox{\@x@c}\strut}%
  1910. \addtolength{\@Hgt@H@C}{\@Dth@H@C}}{\setlength{\@Hgt@H@C}{0pt}\setlength{\@Dth@H@C}{0pt}}%
  1911. \ifthenelse{\boolean{@Rh@use}}%
  1912. {\settoheight{\@Hgt@H@R}{\strut\usebox{\@x@r}\strut}\settodepth{\@Dth@H@R}{\strut\usebox{\@x@r}\strut}%
  1913. \addtolength{\@Hgt@H@R}{\@Dth@H@R}}{\setlength{\@Hgt@H@R}{0pt}\setlength{\@Dth@H@R}{0pt}}%
  1914. \ifthenelse{\boolean{@Lh@use}}%
  1915. {\settoheight{\@Hgt@H@L}{\strut\usebox{\@x@l}\strut}\settodepth{\@Dth@H@L}{\strut\usebox{\@x@l}\strut}%
  1916. \addtolength{\@Hgt@H@L}{\@Dth@H@L}}{\setlength{\@Hgt@H@L}{0pt}\setlength{\@Dth@H@L}{0pt}}%
  1917. \settoheight{\@utilf}{
  1918. \vbox{\llap{\hbox{\parbox{\@utili}{\raggedright\usebox{\@x@l}}\hfill
  1919. \parbox{\@utilj}{\centering\usebox{\@x@c}}\hfill
  1920. \rlap{\parbox{\@utilk}{\raggedleft\usebox{\@x@r}}}}}}}
  1921. \settodepth{\@utilg}{
  1922. \vbox{\hbox{\llap{\parbox{\@utili}{\raggedright\usebox{\@x@l}}\hfill
  1923. \parbox{\@utilj}{\centering\usebox{\@x@c}}\hfill
  1924. \rlap{\parbox{\@utilk}{\raggedleft\usebox{\@x@r}}}}}}}
  1925. \addtolength{\@utilh}{\@utilf}
  1926. \addtolength{\@utilh}{\@utilg}
  1927. \begin{lrbox}{\@x@c}\begin{minipage}{\textwidth}\@cheader\end{minipage}\end{lrbox}%
  1928. \begin{lrbox}{\@x@l}\begin{minipage}{\textwidth}\@lheader\end{minipage}\end{lrbox}%
  1929. \begin{lrbox}{\@x@r}\begin{minipage}{\textwidth}\@rheader\end{minipage}\end{lrbox}%
  1930. \txa{\@lheader}%
  1931. \txa{\@rheader}%
  1932. \ifthenelse{\boolean{@ch@use}}%
  1933. {\settoheight{\@Hgt@h@c}{\strut\usebox{\@x@c}\strut}\settodepth{\@Dth@h@c}{\strut\usebox{\@x@c}\strut}%
  1934. \addtolength{\@Hgt@h@c}{\@Dth@h@c}}{\setlength{\@Hgt@h@c}{0pt}\setlength{\@Dth@h@c}{0pt}}%
  1935. \ifthenelse{\boolean{@rh@use}}%
  1936. {\settoheight\@Hgt@h@r{\strut\usebox{\@x@r}\strut}\settodepth\@Dth@h@r{\strut\usebox{\@x@r}\strut}%
  1937. \addtolength\@Hgt@h@r{\@Dth@h@r}}{\setlength\@Hgt@h@r{0pt}\setlength\@Dth@h@r{0pt}}%
  1938. \ifthenelse{\boolean{@lh@use}}%
  1939. {\settoheight\@Hgt@h@l{\strut\usebox{\@x@l}\strut}\settodepth\@Dth@h@l{\strut\usebox{\@x@l}\strut}%
  1940. \addtolength\@Hgt@h@l{\@Dth@h@l}}{\setlength\@Hgt@h@l{0pt}\setlength\@Dth@h@l{0pt}}%
  1941. \begin{lrbox}{\@x@c}\begin{minipage}{\textwidth}\@Cfooter\end{minipage}\end{lrbox}%
  1942. \begin{lrbox}{\@x@l}\begin{minipage}{\textwidth}\@Lfooter\end{minipage}\end{lrbox}%
  1943. \begin{lrbox}{\@x@r}\begin{minipage}{\textwidth}\@Rfooter\end{minipage}\end{lrbox}%
  1944. \ifthenelse{\boolean{@Cf@use}}%
  1945. {\settoheight{\@Hgt@F@C}{\strut\usebox{\@x@c}\strut}\settodepth{\@Dth@F@C}{\strut\usebox{\@x@c}\strut}%
  1946. \addtolength{\@Hgt@F@C}{\@Dth@F@C}}{\setlength{\@Hgt@F@C}{0pt}\setlength{\@Dth@F@C}{0pt}}%
  1947. \ifthenelse{\boolean{@Rf@use}}%
  1948. {\settoheight{\@Hgt@F@R}{\strut\usebox{\@x@r}\strut}\settodepth{\@Dth@F@R}{\strut\usebox{\@x@r}\strut}%
  1949. \addtolength{\@Hgt@F@R}{\@Dth@F@R}}{\setlength{\@Hgt@F@R}{0pt}\setlength{\@Dth@F@R}{0pt}}%
  1950. \ifthenelse{\boolean{@Lf@use}}%
  1951. {\settoheight{\@Hgt@F@L}{\strut\usebox{\@x@l}\strut}\settodepth{\@Dth@F@L}{\strut\usebox{\@x@l}\strut}%
  1952. \addtolength{\@Hgt@F@L}{\@Dth@F@L}}{\setlength{\@Hgt@F@L}{0pt}\setlength{\@Dth@F@L}{0pt}}%
  1953. \begin{lrbox}{\@x@c}\begin{minipage}{\textwidth}\@cfooter\end{minipage}\end{lrbox}%
  1954. \begin{lrbox}{\@x@l}\begin{minipage}{\textwidth}\@lfooter\end{minipage}\end{lrbox}%
  1955. \begin{lrbox}{\@x@r}\begin{minipage}{\textwidth}\@rfooter\end{minipage}\end{lrbox}%
  1956. \ifthenelse{\boolean{@ch@use}}%
  1957. {\settoheight{\@Hgt@f@c}{\strut\usebox{\@x@c}\strut}\settodepth{\@Dth@f@c}{\strut\usebox{\@x@c}\strut}%
  1958. \addtolength{\@Hgt@f@c}{\@Dth@f@c}}{\setlength{\@Hgt@f@c}{0pt}\setlength{\@Dth@f@c}{0pt}}%
  1959. \ifthenelse{\boolean{@rh@use}}%
  1960. {\settoheight{\@Hgt@f@r}{\strut\usebox{\@x@r}\strut}\settodepth{\@Dth@f@r}{\strut\usebox{\@x@r}\strut}%
  1961. \addtolength{\@Hgt@f@r}{\@Dth@f@r}}{\setlength{\@Hgt@f@r}{0pt}\setlength{\@Dth@f@r}{0pt}}%
  1962. \ifthenelse{\boolean{@lh@use}}%
  1963. {\settoheight{\@Hgt@f@l}{\strut\usebox{\@x@l}\strut}\settodepth{\@Dth@f@l}{\strut\usebox{\@x@l}\strut}%
  1964. \addtolength{\@Hgt@f@l}{\@Dth@f@l}}{\setlength{\@Hgt@f@l}{0pt}\setlength{\@Dth@f@l}{0pt}}%
  1965. \txa{Height of letterhead header}%
  1966. \ifthenelse{\lengthtest{\@Hgt@H@L<\@Hgt@H@C}}%
  1967. {\setlength{\@Hgt@Head}{\@Hgt@H@C}}{\setlength{\@Hgt@Head}{\@Hgt@H@L}}%
  1968. \txa{1) @Hgt@Head: \the\@Hgt@Head,C:\the\@Hgt@H@C,L:\the\@Hgt@H@L,R:\the\@Hgt@H@R}%
  1969. \ifthenelse{\lengthtest{\@Hgt@Head<\@Hgt@H@R}}%
  1970. {\setlength{\@Hgt@Head}{\@Hgt@H@R}}{}%
  1971. \txa{2) @Hgt@Head: \the\@Hgt@Head}%
  1972. \ifthenelse{\lengthtest{\@Hgt@Head<\@Min@Hgt@Head}}%
  1973. {\setlength{\@Hgt@Head}{\@Min@Hgt@Head}}{}%
  1974. \txa{3) @Hgt@Head: \the\@Hgt@Head}%
  1975. \ifthenelse{\lengthtest{\@Hgt@Head<1pt}}%
  1976. {\setlength{\@Hgt@Head}{\@marg@tp}}%
  1977. {%\ifthenelse{\lengthtest{\@marg@tp@a<\@unpr@tp}}%
  1978. \txa{5) @Hgt@Head: \the\@Hgt@Head}%
  1979. \addtolength{\@Hgt@Head}{\@unpr@tp}%
  1980. \txa{6) @Hgt@Head: \the\@Hgt@Head}%
  1981. \addtolength{\@Hgt@Head}{\@marg@tp@a}%
  1982. \txa{7) @Hgt@Head: \the\@Hgt@Head}%
  1983. \addtolength{\@Hgt@Head}{\@Hrw}%
  1984. \addtolength{\@Hgt@Head}{\@unpr@tp}%
  1985. \ifthenelse{\lengthtest{\@Hrw<2pt}}{\addtolength{\@Hgt@Head}{2.0pt}}{}%
  1986. \txa{8) @Hgt@Head: \the\@Hgt@Head,\the\@Hrw,\headrulewidth}%
  1987. }%
  1988. \txa{Left: \the\@Hgt@H@L, Center: \the\@Hgt@H@C, Right: \the\@Hgt@H@R}%
  1989. \txa{Min: \the\@Min@Hgt@Head, Total: \the\@Hgt@Head}%
  1990. \txa{Marg: \the\@marg@tp, Marga: \the\@marg@tp@a, Unpr: \the\@unpr@tp}%
  1991. \txa{@Hgt@Head: \the\@Hgt@Head,@utilf:\the\@utilf,@utilg:\the\@utilg,@utilh:\the\@utilh}
  1992. \txa{Height of non-letterhead header}%
  1993. \ifthenelse{\lengthtest{\@Hgt@h@l<\@Hgt@h@c}}%
  1994. {\setlength{\@Hgt@head}{\@Hgt@h@c}}%
  1995. {\setlength{\@Hgt@head}{\@Hgt@h@l}}%
  1996. \ifthenelse{\lengthtest{\@Hgt@head<\@Hgt@h@r}}%
  1997. {\setlength{\@Hgt@head}{\@Hgt@h@r}}{}%
  1998. \ifthenelse{\lengthtest{\@Hgt@head<\@Min@Hgt@head}}%
  1999. {\setlength{\@Hgt@head}{\@Min@Hgt@head}}{}%
  2000. \ifthenelse{\lengthtest{\@Hgt@head<1pt}}%
  2001. {\setlength{\@Hgt@head}{\@marg@tp}}%
  2002. {%\ifthenelse{\lengthtest{\@marg@tp@a<\@unpr@tp}}%
  2003. \addtolength{\@Hgt@head}{\@marg@tp@a}%
  2004. \addtolength{\@Hgt@head}{\@hrw}%
  2005. \addtolength{\@Hgt@head}{2.60005pt}%
  2006. \txa{unprtop: \the\@unpr@tp}%
  2007. \addtolength{\@Hgt@head}{\@unpr@tp}%
  2008. \ifthenelse{\lengthtest{\@hrw<2pt}}{\addtolength{\@Hgt@head}{2.0pt}}{}%
  2009. }%
  2010. \txa{Left: \the\@Hgt@h@l, Center: \the\@Hgt@h@c, Right: \the\@Hgt@h@r}%
  2011. \txa{Min: \the\@Min@Hgt@head, Total: \the\@Hgt@head}%
  2012. \txa{Marg: \the\@marg@tp, Marga: \the\@marg@tp@a, Unpr: \the\@unpr@tp}%
  2013. \txa{Height of letterhead footer}%
  2014. \ifthenelse{\lengthtest{\@Hgt@F@L<\@Hgt@F@C}}%
  2015. {\setlength{\@Hgt@Foot}{\@Hgt@F@C}}{\setlength{\@Hgt@Foot}{\@Hgt@F@L}}%
  2016. \ifthenelse{\lengthtest{\@Hgt@Foot<\@Hgt@F@R}}%
  2017. {\setlength{\@Hgt@Foot}{\@Hgt@F@R}}{}%
  2018. \ifthenelse{\lengthtest{\@Hgt@Foot<\@Min@Hgt@Foot}}%
  2019. {\setlength{\@Hgt@Foot}{\@Min@Hgt@Foot}}{}%
  2020. \ifthenelse{\lengthtest{\@Hgt@Foot<1pt}}%
  2021. {\setlength{\@Hgt@Foot}{\@marg@bt}}%
  2022. {\ifthenelse{\lengthtest{\@marg@bt@b<\@unpr@bm}}%
  2023. {\setlength{\@marg@bt@b}{\@unpr@bm}}{}%
  2024. \addtolength{\@Hgt@Foot}{\@marg@bt@a}}%
  2025. \txa{Height of non-letterhead footer}%
  2026. \ifthenelse{\lengthtest{\@Hgt@f@l<\@Hgt@f@c}}%
  2027. {\setlength{\@Hgt@foot}{\@Hgt@f@c}} {\setlength{\@Hgt@foot}{\@Hgt@f@l}}%
  2028. \ifthenelse{\lengthtest{\@Hgt@foot<\@Hgt@f@r}}%
  2029. {\setlength{\@Hgt@foot}{\@Hgt@f@r}}{}%
  2030. \ifthenelse{\lengthtest{\@Hgt@foot<\@Min@Hgt@foot}}%
  2031. {\setlength{\@Hgt@foot}{\@Min@Hgt@foot}}{}%
  2032. \ifthenelse{\lengthtest{\@marg@lt@tp@d<1pt}}%
  2033. {\setlength{\@marg@lt@tp@d}{\@Hgt@Head+\@marg@tp@a}}{}%
  2034. \setlength{\@Plg}{\paperheight-\@Hgt@Head-\@Hgt@Foot-\@marg@tp@b-\@marg@tp@a-%
  2035. \@marg@bt@a-\@marg@bt@b-\@f@f-\@Hrw-\@Frw}%
  2036. \setlength{\@plg}{\paperheight-\@Hgt@head-\@Hgt@foot-\@marg@tp@b-\@marg@tp@a-%
  2037. \@marg@bt@a-\@marg@bt@b-\@f@f-\@hrw-\@frw}%
  2038. \ifthenelse{\lengthtest{\@text@height>.1pt}}{\setlength{\@Plg}{\@text@height}}{}%
  2039. \ifthenelse{\boolean{@Bg@use}}%
  2040. {\ClearShipoutPicture%
  2041. \AddToShipoutPicture{\includegraphics[natheight=11in,natwidth=8.5in]{\@Backgrnd}}}%
  2042. {\ifthenelse{\boolean{@bg@use}}%
  2043. {\ClearShipoutPicture%
  2044. \AddToShipoutPicture{\includegraphics[natheight=11in,natwidth=8.5in]{\@backgrnd}}%
  2045. }{}}%
  2046. \def\ifta{0}%
  2047. \txa{\string\@Hgt@H@C: \the\@Hgt@H@C, \string\@Hgt@H@R: \the\@Hgt@H@R}%
  2048. \txa{\string\@Hgt@H@L: \the\@Hgt@H@L, \string\@Hgt@Head: \the\@Hgt@Head}%
  2049. \txa{\string\@Hgt@h@c: \the\@Hgt@h@c, \string\@Hgt@h@r: \the\@Hgt@h@r}%
  2050. \txa{\string\@Hgt@h@l: \the\@Hgt@h@l, \string\@Hgt@head: \the\@Hgt@head}%
  2051. \txa{\string\@Hgt@F@C: \the\@Hgt@F@C, \string\@Hgt@F@R: \the\@Hgt@F@R}%
  2052. \txa{\string\@Hgt@F@L: \the\@Hgt@F@L, \string\@Hgt@Foot: \the\@Hgt@Foot}%
  2053. \txa{\string\@Hgt@f@c: \the\@Hgt@f@c, \string\@Hgt@f@r: \the\@Hgt@f@r}%
  2054. \txa{\string\@Hgt@f@l: \the\@Hgt@f@l, \string\@Hgt@foot: \the\@Hgt@foot}%
  2055. \txa{\string\@Plg:\the\@Plg, \string\paperheight:\the\paperheight}%
  2056. \txa{\string\@Hgt@Head:\the\@Hgt@Head, \string\@Hgt@head:\the\@Hgt@head}%
  2057. \txa{\string\@f@f:\@f@f,\string\footskip:\the\footskip}%
  2058. \txa{\string\@Hgt@foot:\the\@Hgt@Foot, \string\baselineskip:\the\baselineskip}%
  2059. \txa{\string\@plg:\the\@plg, \string\paperheight:\the\paperheight}%
  2060. \txa{\string\@Hgt@foot:\the\@Hgt@Foot, \string\baselineskip:\the\baselineskip}%
  2061. \txa{\string\@Hgt@foot:\the\@Hgt@Foot}%
  2062. \txa{\string\voffset:\the\voffset, \string\headsep:\the\headsep}%
  2063. \txa{\string\footruleskip:\footruleskip, \string\footrulewidth:\footrulewidth}%
  2064. \def\ifta{0}%
  2065. \ifthenelse{\boolean{@marg@Luse}}%
  2066. {\txa{Setting up left column...}%
  2067. \settowidth{\@utile}{\@Lmarg}%
  2068. \txa{Lt column width:\the\@utile}
  2069. \ifthenelse{\lengthtest{\@unpr@lt>\@marg@lt@l}}{\setlength{\@marg@lt@l}{\@unpr@lt}}%
  2070. {\addtolength{\@marg@lt@l}{\@unpr@lt}}%
  2071. \addtolength{\@utile}{\@marg@lt@l}%
  2072. \setlength{\marginparwidth}{\@utile}%
  2073. \setlength{\marginparsep}{\@marg@lt@r}%
  2074. \setlength{\@marg@lt}{\@utile}%
  2075. \txa{Lt Column width+edge:\the\@util,\the\@marg@lt@l}%
  2076. \txa{\string\@util:\the\@util, width:\the\marginparwidth,sep:\the\marginparsep}%
  2077. \ifthenelse{\lengthtest{\@marg@lt@tp@d<1pt}}{\setlength{\@marg@lt@tp@d}{\@Hgt@Head}}{}%
  2078. \txa{Done!}
  2079. }%
  2080. {%
  2081. \setlength{\marginparsep}{0in}%
  2082. \setlength{\marginparwidth}{0in}%
  2083. \ifthenelse{\lengthtest{\@unpr@lt>\@marg@lt}}{\setlength{\@marg@lt}{\@unpr@lt}}{}%
  2084. }%
  2085. \ifthenelse{\boolean{@marg@Ruse}}%
  2086. {%
  2087. \txa{Setting up right column...}%
  2088. \settowidth{\@utile}{\@Rmarg}%
  2089. \txa{Rt Column width:\the\@utile}%
  2090. \ifthenelse{\lengthtest{\@marg@rt@l<.01pt}}{\setlength{\@marg@rt@l}{\@marg@lt@r}}{}%
  2091. \ifthenelse{\lengthtest{\@marg@rt@r<.01pt}}{\setlength{\@marg@rt@r}{\@marg@lt@l}}{}%
  2092. \txa{Unpr Rt:\the\@unpr@rt,Marg Rt R:\the\@marg@rt@r}
  2093. \ifthenelse{\lengthtest{\@unpr@rt>\@marg@rt@r}}{\setlength{\@marg@rt@r}{\@unpr@rt}}{}%
  2094. \txa{Unpr Rt:\the\@unpr@rt,Marg Rt R:\the\@marg@rt@r}%
  2095. \addtolength{\@utile}{\@marg@rt@r}%
  2096. \txa{Rt Column width+gutter:\the\@utile}%
  2097. \addtolength{\@utile}{\@marg@rt@l}%
  2098. \txa{Rt Column width+edge:\the\@utile}%
  2099. \setlength{\@marg@rt}{\@utile}%
  2100. \txa{\string\@util:\the\@util, \string\marginparwidth:\the\marginparwidth}%
  2101. \ifthenelse{\lengthtest{\@marg@rt@tp@d<1pt}}%
  2102. {\setlength{\@marg@rt@tp@d}{\@Hgt@Head}}{}%
  2103. \txa{Done!}%
  2104. }%
  2105. {%
  2106. \txa{No right column}%
  2107. \ifthenelse{\lengthtest{\@unpr@rt>\@marg@rt}}{\setlength{\@marg@rt}{\@unpr@rt}}{}%
  2108. \ifthenelse{\lengthtest{\@unpr@rt>\@marg@rt}}{\setlength{\@marg@rt}{\@unpr@rt}}{}%
  2109. }%
  2110. \setlength{\@Pwd}{\paperwidth-\@marg@lt-\@marg@rt}%
  2111. \txa{Page width:\the\@Pwd,paper:\the\paperwidth}%
  2112. \txa{\string\@Hgt@H@C:\the\@Hgt@H@C, width:\the\marginparwidth,sep:\the\marginparsep}%
  2113. \ifthenelse{\lengthtest{\@text@width>.1pt}}{\setlength{\@Pwd}{\@text@width}}{}%
  2114. \showdim{At raggedbottom}%
  2115. \raggedbottom%
  2116. \def\ifta{0}%
  2117. \showdim{Before setpage}%
  2118. \txa{\string\@marg@tp@a:\the\@marg@tp@a,\string\@Hgt@Head:\the\@Hgt@Head}%
  2119. \txa{\string\@marg@tp@b:\the\@marg@tp@b,\string\@Hgt@Foot:\the\@Hgt@Foot}%
  2120. \txa{\string\@marg@bt@a:\the\@marg@bt@a,\string\@Hgt@Head:\the\@Hgt@Head}%
  2121. \txa{\string\@marg@bt@b:\the\@marg@bt@b,\string\@Hgt@Foot:\the\@Hgt@Foot}%
  2122. \txa{\string\@unpr@bm:\the\@unpr@bm,\string\@unpr@tp:\the\@Hgt@Foot}%
  2123. \txa{Before Setting page 1}%
  2124. \settoheight{\@utile}{\@Rheader}%
  2125. \settodepth{\@utilb}{\@Rheader}%
  2126. \addtolength{\@utile}{\@utilb}%
  2127. \txa{Right: \the\@utile}%
  2128. \settoheight{\@utile}{\@Cheader}%
  2129. \settodepth{\@utilb}{\@Cheader}%
  2130. \addtolength{\@utile}{\@utilb}%
  2131. \txa{Center: \the\@utile}%
  2132. \settoheight{\@utile}{\@Lheader}%
  2133. \settodepth{\@utilb}{\@Lheader}%
  2134. \addtolength{\@utile}{\@utilb}%
  2135. \txa{Left: \the\@utile}%
  2136. \txa{marg-tp-a: \the\@marg@tp@a}%
  2137. \gdef\npind{A5}%
  2138. \ifthenelse{\lengthtest{\@Hgt@head<10pt}}{\setlength{\@Hgt@head}{13pt}}{}%
  2139. \setpage{\@Plg}{\@Pwd}{\@marg@rt-1in}{\@marg@lt-1in}{10pt}%
  2140. {\@marg@tp@a-1in}{\@Hgt@Head}{\@marg@tp@b}{\@Hgt@Foot}%
  2141. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  2142. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  2143. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  2144. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  2145. \vspace*{\the\@marg@tp@a}
  2146. \txa{headrulewidth:\headrulewidth}
  2147. \@zfancyhead{\relax}{\f@nch@olh}{\f@nch@olh}{\f@nch@orh}{\relax}
  2148. \txa{HgtHead:\the\@Hgt@Head,utill:\the\@utill,zpqutil:\@zpqutil}
  2149. \addtolength{\@Hgt@Head}{\@utill}
  2150. \addtolength{\@Hgt@Head}{\@zpqutil}
  2151. \txa{HgtHead:\the\@Hgt@Head}
  2152. \setpage{\@Plg}{\@Pwd}{\@marg@rt-1in}{\@marg@lt-1in}{10pt}%
  2153. {\@marg@tp@a-1in}{\@Hgt@Head}{\@marg@tp@b}{\@Hgt@Foot}%
  2154. \txa{headheight:\the\headheight}
  2155. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  2156. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  2157. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  2158. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  2159. \txa{After Setting page 1}%
  2160. \fixhh{\@Hgt@head}%
  2161. \fixth{\@plg}%
  2162. \showdim{After setpage}%
  2163. \setlength{\headwidth}{\textwidth}%
  2164. \def\ifta{0}%
  2165. \ifthenelse{\boolean{@cello@win}} {%
  2166. \setlength{\@utila}{\@cello@d}%
  2167. \txa{1. \the\@utila}
  2168. \addtolength{\@utila}{-\@Hgt@Head}%
  2169. \txa{2. \the\@utila,\the\@Hgt@Head}%
  2170. \addtolength{\@utila}{-\@marg@tp@a}%
  2171. \txa{3. \the\@utila,\the\@marg@tp@a}
  2172. \addtolength{\@utila}{-\@marg@tp@b}%
  2173. \txa{4. \the\@utila,\the\@marg@tp@b}
  2174. \ifthenelse{\boolean{@dt@p}}{\txa{Fixing date}%
  2175. \ifthenelse{\@intd@pos<\@intt@pos}{%
  2176. \addtolength{\@utila}{-\@dt@sk@b}%
  2177. \txa{5. \the\@utila,\the\@dt@sk@b}%
  2178. \addtolength{\@utila}{-\@dt@sk@a}%
  2179. \txa{6. \the\@utila,\the\@dt@sk@a}
  2180. \settoheight{\@utile}{\@xdate}%
  2181. \addtolength{\@utila}{-\@utile}%
  2182. \txa{7. \the\@utila,\the\@utile}%
  2183. }{}}{}%
  2184. \ifthenelse{\boolean{@addr@fr@p}}{\txa{Fixing from address}%
  2185. \ifthenelse{\@intf@pos<\@intt@pos}{%
  2186. \addtolength{\@utila}{-\@addr@fr@sk@b}%
  2187. \addtolength{\@utila}{-\@addr@fr@sk@a}%
  2188. \sbox{\b@addr@fr}{\noindent\setlength{\tabcolsep}{0pt}% Address-from into a box
  2189. \raggedleft\begin{tabular}{l@{}}%
  2190. \noindent\ignorespaces\@addr@fr%
  2191. \ifthenelse{\boolean{@addr@fr@t}}{\\ \@phn@phr: \@phn@fr}{}%
  2192. \ifthenelse{\boolean{@addr@fr@f}}{\\ \@fax@phr: \@fax@fr}{}%
  2193. \ifthenelse{\boolean{@addr@fr@e}}{\\ \@email@phr: \@email@fr}{}%
  2194. \end{tabular}}%
  2195. \settoheight{\@utile}{\usebox{\b@addr@fr}}%
  2196. \addtolength{\@utila}{-\@utile}%
  2197. \txa{8. \the\@utila,\the\@utile}%
  2198. }{}}{}%
  2199. \txa{9. \the\@utila}%
  2200. \setlength{\@utilb}{\@cello@l}%
  2201. \txa{10. Horizontal position}%
  2202. \txa{11. Start: \the\@utilb}%
  2203. \addtolength{\@utilb}{-\@marg@lt}%
  2204. \txa{12. \the\@utilb,\the\@marg@lt}%
  2205. \txa{13. \the\@utilb}%
  2206. \ifthenelse{\lengthtest{\@utila > 0pt}}{\setboolean{@ztila}{true}}%
  2207. {\typeout{Cello window requested, but cannot be used.}%
  2208. \typeout{'To-address' cannot be placed vertically. Suggestions:}%
  2209. \typeout{1. Make letterhead components smaller.}%
  2210. \typeout{2. Eliminate date or 'from-address' from letter.}%
  2211. \typeout{3. Move date or 'from-address' below 'to-address'.}%
  2212. \setboolean{@ztila}{false}%
  2213. }%
  2214. \ifthenelse{\lengthtest{\@utilb > 0pt}}{\setboolean{@ztilb}{true}}%
  2215. {\typeout{Cello window requested, but cannot be used.}%
  2216. \typeout{'To-address' cannot be placed horizontally. Suggestions:}%
  2217. \typeout{1. Make left-margin width smaller.}%
  2218. \typeout{2. Eliminate margin components.}%
  2219. \setboolean{@ztilb}{false}%%
  2220. }%
  2221. \ifthenelse{\boolean{@ztila} \and \boolean{@ztilb}}{%
  2222. \setlength{\@addr@to@sk@b}{\@utila}%
  2223. \setlength{\@extr@hor}{\@utila}}{}%
  2224. }{\setboolean{@cello@win}{false}\setlength{\@extr@hor}{0pt}}%
  2225. \def\ifta{0}%
  2226. \txa{End of @set@em@up}%
  2227. }%
  2228. \newif \if@dim@reset \@dim@resettrue%
  2229. \newif \if@repth \@repthfalse%
  2230. \newcommand{\@rep@th}{}%
  2231. \newcommand{\fixth}[1]{\renewcommand{\@rep@th}{#1} \global\@repthtrue}%
  2232. \newdimen \@rep@th%
  2233. \newif \if@reptw \@reptwfalse%
  2234. \newcommand{\@rep@tw}{}%
  2235. \newcommand{\fixtw}[1]{\renewcommand{\@rep@tw}{#1} \global\@reptwtrue}%
  2236. \newdimen \@rep@tw%
  2237. \newif \if@repom \@repomfalse%
  2238. \newcommand{\@rep@om}{}%
  2239. \newcommand{\fixom}[1]{\renewcommand{\@rep@om}{#1} \global\@repomtrue}%
  2240. \newdimen \@rep@om%
  2241. \newif \if@repem \@repemfalse%
  2242. \newcommand{\@rep@em}{}%
  2243. \newcommand{\fixem}[1]{\renewcommand{\@rep@em}{#1} \global\@repemtrue}%
  2244. \newdimen \@rep@em%
  2245. \newif \if@repcs \@repcsfalse%
  2246. \newcommand{\@rep@cs}{}%
  2247. \newcommand{\fixcs}[1]{\renewcommand{\@rep@cs}{#1} \global\@repcstrue}%
  2248. \newdimen \@rep@cs%
  2249. \newif \if@reptm \@reptmfalse%
  2250. \newcommand{\@rep@tm}{}%
  2251. \newcommand{\fixtm}[1]{\renewcommand{\@rep@tm}{#1} \global\@reptmtrue}%
  2252. \newdimen \@rep@tm%
  2253. \newif \if@rephh \@rephhfalse%
  2254. \newcommand{\@rep@hh}{}%
  2255. \newcommand{\fixhh}[1]{\renewcommand{\@rep@hh}{#1} \global\@rephhtrue}%
  2256. \newdimen \@rep@hh%
  2257. \newif \if@rephs \@rephsfalse%
  2258. \newcommand{\@rep@hs}{}%
  2259. \newcommand{\fixhs}[1]{\renewcommand{\@rep@hs}{#1} \global\@rephstrue}%
  2260. \newdimen \@rep@hs%
  2261. \newif \if@repfs \@repfsfalse%
  2262. \newcommand{\@rep@fs}{}%
  2263. \newcommand{\fixfs}[1]{\renewcommand{\@rep@fs}{#1} \global\@repfstrue}%
  2264. \newdimen \@rep@fs%
  2265. \def\@outputpage{%
  2266. \def\ifta{0}%
  2267. \txa{npind:\npind}%
  2268. \showdim{New page - before shipout}%
  2269. \begingroup% % the \endgroup is put in by \aftergroup
  2270. \let \protect \noexpand%
  2271. \@resetactivechars%
  2272. \global\let\@@if@newlist\if@newlist%
  2273. \global\@newlistfalse%
  2274. \@parboxrestore%
  2275. \txa{topmargin:\the\topmargin}%
  2276. \txa{Before shipout...}%
  2277. \showdim{New page - immediately before shipout}%
  2278. \shipout \vbox{%%
  2279. \set@typeset@protect%
  2280. \aftergroup \endgroup%
  2281. \aftergroup \set@typeset@protect% correct? or just restore by ending the group%
  2282. \if@specialpage%
  2283. \global\@specialpagefalse\@nameuse{ps@\@specialstyle}%%
  2284. \fi%
  2285. \if@twoside%
  2286. \ifodd\count\z@ \let\@thehead\@oddhead \let\@thefoot\@oddfoot%
  2287. \let\@themargin\oddsidemargin%
  2288. \else \let\@thehead\@evenhead%
  2289. \let\@thefoot\@evenfoot \let\@themargin\evensidemargin%
  2290. \fi%
  2291. \fi%
  2292. \reset@font%
  2293. \normalsize%
  2294. \txa{Before normalsfcodes}%
  2295. \normalsfcodes%
  2296. \let\label\@gobble%
  2297. \let\index\@gobble%
  2298. \let\glossary\@gobble%
  2299. \baselineskip\z@skip \lineskip\z@skip \lineskiplimit\z@%
  2300. \@begindvi%
  2301. \vskip \topmargin%
  2302. \moveright\@themargin \vbox {%%
  2303. \setbox\@tempboxa \vbox to\headheight{%%
  2304. \vfil%
  2305. \color@hbox%
  2306. \normalcolor%
  2307. \hb@xt@\textwidth{\@thehead}%%
  2308. \color@endbox%
  2309. }% %% 22 Feb 87%
  2310. \dp\@tempboxa \z@%
  2311. \box\@tempboxa%
  2312. \vskip \headsep%
  2313. \box\@outputbox%
  2314. \baselineskip \footskip%
  2315. \color@hbox%
  2316. \normalcolor%
  2317. \hb@xt@\textwidth{\@thefoot}%%
  2318. \color@endbox%
  2319. }%%
  2320. }%
  2321. \txa{After shipout}%
  2322. \global\let\if@newlist\@@if@newlist%
  2323. \showdim{New page - before reset}%
  2324. \if@dim@reset%
  2325. \if@repth \global\textheight \@rep@th \global\@repthfalse \fi%
  2326. \fi%
  2327. \global \@colht \textheight%
  2328. \stepcounter{page}%
  2329. \let\firstmark\botmark%
  2330. \if@dim@reset%
  2331. \if@repth \global\textheight \@rep@th \global\@repthfalse \fi%
  2332. \if@reptw \global\textwidth \@rep@tw \global\@reptwfalse \fi%
  2333. \if@repom \global\oddsidemargin \@rep@om \global\@repomfalse \fi%
  2334. \if@repem \global\evensidemargin \@rep@em \global\@repemfalse \fi%
  2335. \if@repcs \global\columnsep \@rep@cs \global\@repcsfalse \fi%
  2336. \if@reptm \global\topmargin \@rep@tm \global\@reptmfalse \txa{Fixing tm} \fi%
  2337. \if@rephh \global\headheight \@rep@hh \global\@rephhfalse \fi%
  2338. \if@rephs \global\headsep \@rep@hs \global\@rephsfalse \fi%
  2339. \if@repfs \global\footskip \@rep@fs \global\@repfsfalse \fi%
  2340. \fi%
  2341. \showdim{New page - after reset}%
  2342. \def\ifta{0}%
  2343. \renewcommand{\headrulewidth}{\the\@hrw}%
  2344. \renewcommand{\footrulewidth}{\the\@frw}%
  2345. }%
  2346. \AtEndDocument{%
  2347. \ifthenelse{\boolean{@set@env}}%
  2348. {\@clear@box%
  2349. \pagestyle{empty}\thispagestyle{empty}%
  2350. \def\ifta{0}%
  2351. \showdim{Before changeing dimensions}%
  2352. \gdef\npind{A6}%
  2353. \setpage{11in}{8.5in}{-1in}{-1in}{0in}{-1in}{0in}{0in}{0in}%
  2354. \txa{Starting the call to makeenvfn}%
  2355. \makeenvfn%
  2356. \txa{After return from the call to makeenvfn}%
  2357. }{}%
  2358. \ifthenelse{\boolean{@use@envlab}}{\@make@big@env}{}%
  2359. }%
  2360. \AtBeginDocument{%
  2361. \def\ifta{0}%
  2362. \txa{AtBeginDocument...}%
  2363. \@nlfm@addr=0%
  2364. \ifthenelse{\boolean{@use@envlab}}%
  2365. {%
  2366. \IfFileExists{envlab.sty}%
  2367. {\makelabels}%
  2368. {\typeout{The option <useenvlab> was issued. File <envlab.sty> cannot be found.}%
  2369. \typeout{Option <useenvlab> is disabled. Please install envlab system.}%
  2370. \setboolean{@use@envlab}{false}}}{}%
  2371. {}%
  2372. \txa{At the very very end...}%
  2373. }%
  2374. \endinput%
  2375.  
  2376. %%% Local Variables:
  2377. %%% mode: latex
  2378. %%% TeX-master: t
  2379. %%% End:
  2380. \endinput
  2381. %%
  2382. %% End of file `newlfm.cls'.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement