From c49b4326cde7ef42ae8571be9f7e12dbdf1ec6ac Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Wed, 14 Jan 2009 00:14:05 +0000 Subject: newlfm 9.1 (11jan09) git-svn-id: svn://tug.org/texlive/trunk@11859 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/source/latex/newlfm/newlfm.dtx | 1237 +++++++--------------- Master/texmf-dist/source/latex/newlfm/newlfm.ins | 110 +- 2 files changed, 465 insertions(+), 882 deletions(-) (limited to 'Master/texmf-dist/source/latex/newlfm') diff --git a/Master/texmf-dist/source/latex/newlfm/newlfm.dtx b/Master/texmf-dist/source/latex/newlfm/newlfm.dtx index 7e135a1c558..434da7d7455 100644 --- a/Master/texmf-dist/source/latex/newlfm/newlfm.dtx +++ b/Master/texmf-dist/source/latex/newlfm/newlfm.dtx @@ -22,7 +22,7 @@ % ltrfax.cls -- Paul A. Thompson % lfmp.cls -- Ross Boylan % -% Copyright 1998-2005 Paul A. Thompson +% Copyright 1998-2009 Paul A. Thompson % % IMPORTANT NOTICE: % @@ -71,12 +71,12 @@ %<*driver> \ProvidesFile{newlfm.drv} % -%<+package> [2004/11/02 v8.3 +%<+package> [2009/1/09 v9.1 %<+package> Letter-Fax-Memo LaTeX Document Class] -%<+addrset> [2004/11/02 v8.3 +%<+addrset> [2009/1/09 v9.1 %<+addrset> Address macros]% -%<+setdim> [2004/11/02 v8.3 -%<+setdim> Address macros] +%<+setdim> [2009/1/09 v9.1 +%<+setdim> Dimension Setting macros] % \end{macrocode} % % \section{The documentation driver file} @@ -152,19 +152,8 @@ % Boylan. Thanks, Ross.} % \changes{v8.3}{2004/11/02}{Election special. Cello-window option added.} % \changes{v8.4}{2004/11/06}{Fixed a number of other errors, including -% multiple repeated envelope labels. Specials added to printing. Address -% printing converted to the use of the table notation. Specials and -% address components work together to print a variety of components in the -% ``address-area'' of the letter.} -% \changes{v9.0}{2004/06/16}{Revised address space method, going to a -% tabular approach. This greatly simplifies the method for setting up the -% multiple repeated envelope labels. Specials added to printing. Address -% printing converted to the use of the table notation. Specials and -% address components work together to print a variety of components in the -% ``address-area'' of the letter.} -% \changes{v9.1}{2004/09/16}{Fixed a number of very small bugs - including -% errors in memonofrom and friends, Blankheader and friends, and several -% other small problems.} +% multiple repeated envelope labels.} +% \changes{v1.1}{2009/1/09}{Added ability to add letterhead paper as 'watermark' .eps file} % % \iffalse % \begin{macrocode} @@ -312,7 +301,7 @@ % it is much more convenient to put this information in an address % database. % -% \subsection{Option specification} +% \subsection{Option specification} % \label{sec:opt} % The |newlfm| package features a wide variety of options to specify % options for letters, faxes and memos. @@ -359,22 +348,8 @@ % in order of encounter, so the last option encountered over-rides % earlier ones. % -% \subsection{Basic ideas of newlfm} -% A letter has a number of components. These include the to-address, -% the from-address, the salutation or greeting, the body or main part -% of the letter, the closing and the signature. In addition, there are -% components of the header section, the left-margin, the right-margin and -% the footer section. In |newlfm|, the header and footer sections are -% managed using the basic tools provided by |fancyhdr|. The left- and -% right-margins are managed using the margin specification tools of -% \LaTeX. For the remaining components, |newlfm| structures the -% placement using the |tabular| methodology of \LaTeX. Using this -% approach, items are placed into cells of a |tabular| structure, and -% spacing is adjusted accordingly. The further implications of this -% structure is discussed below in Section \ref{sec:struct}. -% -% \section{Available styles} -% \subsection{Letter styles} +% \section{Available styles} +% \subsection{Letter styles} % \label{sec:let}% % |newlfm| defines several letter styles. These styles are chosen using % options (in either selection method). Letters include some or all of the following components: @@ -382,7 +357,7 @@ % closing phrase, 6) signature, and 7) name and title of signer. % Justification of the components is shown in \tabr{addrloc} below. % -% \subsection{Memo styles} +% \subsection{Memo styles} % \label{sec:mem} % Memos are headed as: % \begin{center} @@ -399,7 +374,7 @@ % \tabr{addrloc} below. The user may use their % own version of the memo block. % -% \subsection{A list of styles in \texttt{newlfm}} +% \subsection{A list of styles in \texttt{newlfm}} % \tabr{addrloc} shows the components of a letter, and indicates when % they will be used in letters: % @@ -434,7 +409,7 @@ % \label{sec:leto} % In |newlfm|, the various components of the letter can be modified. % This is done using options (placed in the ``document-header'' or -% ``keyed-value'' approaches). +% ``keyed-value'' approaches). % % The following example illustrates option placement in the document % header line: @@ -508,37 +483,10 @@ % \end{tabular} % \end{center} % -% \subsection{Letter components} -% \label{sec:struct} -% Items are placed in the address block section using a |tabular| -% structure. The first item(s) is(are) placed in Row 2, the second -% sequentially occurring is placed in Row 4 and the last in Row 6. The -% |tabular| block has three columns, and the choice of columns for -% printing is determined by justification of the items. Other items may -% optionally be placed in other locations of the |tabular| block using -% a special item: -% \begin{verbatim} -% \speciala{text}{row}{col} -% \spacespa{space-before-a}{space-after-a} -% \end{verbatim} -% Using this approach, optional text may be placed into an optional -% location in the header section. If special spacing is desired, it is -% defined using the |\spacespa| construction. In |newlfm|, special text -% may be added using |speciala|, |specialb|, |specialc|, |speciald|, -% |speciale|, |specialf|, |specialg|, and |specialh|. Each of these -% special text tools is paired with a |spacespx| construction, where |x| -% is the same letter as the |special| tool. The |tabular| structure has -% a total of 7 addressable rows, allowing optional items to be placed -% before the first letter element (in Row 1), after the last letter -% element (in Row 7), or between letter elements (in Rows 3 and 5). -% Optional items may also be placed on the same rows as standard letter -% elements. Note, however, that the placement of items in the same -% position as standard letter elements will be ignored. -% % \subsection{Memo options} % \label{sec:memo} -% Memo options involve the inclusion of elements into from-address -% and to-address blocks (including email and telephone numbers) and +% Memo options involve the inclusion of elements into ``from-address'' +% and ``to-address'' blocks (including email and telephone numbers) and % the placement of blocks on the page. Blocks may also be omitted. These % may be placed either in the ``document-header'' option section, or in % the command |\newlfmP|. @@ -757,6 +705,7 @@ % Text Block & & |textheight| & & \\ % Left Margin Block & |\Lmargin| & & |leftmargintopdist| & \\ % Right Margin Block& |\Rmargin| & & |rightmargintopdist| & \\ +% Close line & |\closeline| & & |closeskipbefore| & |closeskipafter| \\ % Signature & |\signature| & |sigsize| & |sigskipbefore| & |sigskipafter| \\ % & |\siglist| & & & \\ % |Ps|, |PPs|, etc & Various & & |postsigskipbefore| & |postsigskipafter| \\ @@ -976,7 +925,6 @@ % \hdr{Page} & \hdr{Location} & \hdr{Left} & \hdr{Center} & \hdr{Right} \\ \hline % Letterhead & Footer & |\Lfooter| & |\Cfooter| & |\Rfooter| \\ % & Header & |\Lheader| & |\Cheader| & |\Rheader| \\ -% & Under Header & |\LUheader| & |\CUheader| & |\RUheader| \\ % & Margin & |\Lmargin| & & |\Rmargin| \\ % \hline \hline % Page & Location & Left & Center & Right \\ \hline @@ -993,14 +941,8 @@ % In order for this to work, {\bfseries \itshape all \info{} for the % header and footer must be included in boxed formats}. That is, to use a % letterhead, logos, pictures, addresses, whatever must be placed in a -% \LaTeX\ box structure. The boxed formatted items may be included in a -% wrapper program. -% -% Under-header items are placed into boxes and placed just under the -% header section. This allows items to be effectively divided into two -% sections, those placed in the actual header, and those placed in -% another header-like section just under the true header section. This -% enables a more flexible and general letter to be written. +% \LaTeX\ box structure. The boxed formatted items +% may be included in a wrapper program. % % For example, if a logo is to be included from an external file, this % should be inserted into an |\sbox| and used as follows: @@ -1535,16 +1477,6 @@ % \end{enumerate*} % % \section{Miscellaneous topics} -% \subsection{Paper sizes} -% Paper sizes are the generally available ones. The following may be -% specified: letterpaper (8.5in $\times$ 11in), legalpaper (8.5in -% $\times$ 14in), executivepaper (7.25in $\times$ 10.5in), bigpaper (11in -% $\times$ 17in), ebook(6in $\times$ 9in), a3paper (297mm $\times$ -% 420mm), a4paper (210mm $\times$ 297mm), a5paper (148mm $\times$ 210mm), -% a6paper (105mm $\times$ 148mm), b3paper (353mm $\times$ 500mm), b4paper -% (250mm $\times$ 353mm), b5paper (176mm $\times$ 250mm), and b6paper -% (125mm $\times$ 176mm). -% % \subsection{Lines} % By default, |newlfm| demarcates the header and footer sections with % lines. These may be eliminated using the commands |noheadline|, @@ -1789,6 +1721,7 @@ % either in the document-header option block or in the % |\newlfmP| command) % \item \textbf{Letter date information:} |\dateset| +% \item \textbf{Water-mark page:} |\waterpage| % \item \textbf{Memo styles:} |stdmemo|, |fullmemo| (\tabpagr{memoopt}) % \item \textbf{Memo options:} |memoaddrto|, |memoemailto|, |memophoneto|, % |memofaxto|, |memoaddrfrom|, |memoemailfrom|, |memophonefrom|, @@ -1838,6 +1771,7 @@ % |\dateskipbefore|, |\dateskipafter|, |\addrfromskipbefore|, % |\addrfromskipafter|, |\addrtoskipbefore|, |\addrtoskipafter|, % |\greettoskipbefore|, |\greettoskipafter|, |\textheight|, +% |\closeskipbefore|, |\closeskipafter|, % |\sigskipbefore|, |\sigsize|, |\sigskipafter|,|\sigskipcolumn|, % |\sigskiprow|, |\postsigskipbefore|, % |\postsigskipafter|, |\bottommarginskip|, |\footermarginsize|, @@ -1881,7 +1815,7 @@ % % \StopEventually % -% \section{Code (excluded from manual)} +% \section{Code} % \begin{macrocode} %<*package> % \end{macrocode} @@ -1964,8 +1898,7 @@ \newlength{\@pre@memo@sp} \newlength{\@post@memo@sp} \newlength{\@sig@sk@b}% \newlength{\@sig@sk@a} \newlength{\@sig@sp} \newlength{\@text@width}% \newlength{\@sig@sk@c} \newlength{\@sig@sk@r}% -\newlength{\@stock@height} \newlength{\@stock@width}% -\newlength{\@fax@height} \newlength{\@fax@width}% +\newlength{\@cls@sk@a} \newlength{\@cls@sk@b}% \newlength{\@text@height} \newlength{\@unpr@tp} \newlength{\@unpr@bm}% \newlength{\@unpr@rt} \newlength{\@unpr@lt} \newlength{\@util}% \newlength{\@utila} \newlength{\@utilb} \newlength{\@utilc}% @@ -1973,11 +1906,10 @@ \newlength{\@xda} \newlength{\@xdb} \newlength{\@xdc}% \newlength{\@xdd} \newlength{\@xde} \newlength{\@xdf}% \newlength{\@xdg} \newlength{\@xdh} \newlength{\@xdi}% -\newlength{\extrarulesep}% -% \end{macrocode}% -% \paragraph{\texttt{newlength} default values:}% -% Begin by defining all newlength commands here:% -% \begin{macrocode}% +% \end{macrocode} +% \paragraph{\texttt{newlength} default values:} +% Begin by defining all newlength commands here: +% \begin{macrocode} \setlength{\@cello@h}{1in} \setlength{\@cello@w}{3in}% \setlength{\@cello@d}{2.5in} \setlength{\@cello@l}{1in}% \setlength{\@marg@tp@s}{0in} \setlength{\@marg@bt@b}{0in}% @@ -1993,50 +1925,23 @@ \setlength{\@Hrw}{1pt} \setlength{\@hrw}{1pt}% \setlength{\@Frw}{1pt} \setlength{\@frw}{1pt}% \setlength{\@sig@sk@a}{5pt} \setlength{\@sig@sk@b}{5pt} +\setlength{\@cls@sk@a}{0pt} \setlength{\@cls@sk@b}{1em} \setlength{\@sig@sk@c}{5pt} \setlength{\@sig@sk@r}{5pt}% -\setlength{\@fax@height}{720pt}\setlength{\@fax@width}{432pt}% -\setlength{\@extr@hor}{0pt}% -% \end{macrocode}% -% \paragraph{\texttt{newsavebox} definitions:}% -% Define all newsavebox commands here:% -% \begin{macrocode}% +\setlength{\@extr@hor}{0pt} +% \end{macrocode} +% \paragraph{\texttt{newsavebox} definitions:} +% Define all newsavebox commands here: +% \begin{macrocode} \newsavebox{\@sig@box@a}\newsavebox{\b@addr@fr}\newsavebox{\b@addr@to}% -\newsavebox{\@x@c} \newsavebox{\@x@l} \newsavebox{\@x@r} \newsavebox{\@xdateb}% -\newsavebox{\fba} \newsavebox{\adrfr} \newsavebox{\adrto} \newsavebox{\@sp@box}% -\newsavebox{\@sig@box@b}\newsavebox{\@sig@box@c}\newsavebox{\@sig@box@d}% -\newsavebox{\@sig@box@e}\newsavebox{\@sig@box@f}\newsavebox{\@sig@box@g}% -\newsavebox{\@sig@box@h}\newsavebox{\@sig@box@i}\newsavebox{\@sig@box@j}% -\newsavebox{\@hblk@aa}\newsavebox{\@hblk@ab}\newsavebox{\@hblk@ac}% -\newsavebox{\@hblk@ba}\newsavebox{\@hblk@bb}\newsavebox{\@hblk@bc}% -\newsavebox{\@hblk@ca}\newsavebox{\@hblk@cb}\newsavebox{\@hblk@cc}% -\newsavebox{\@hblk@da}\newsavebox{\@hblk@db}\newsavebox{\@hblk@dc}% -\newsavebox{\@hblk@ea}\newsavebox{\@hblk@eb}\newsavebox{\@hblk@ec}% -\newsavebox{\@hblk@fa}\newsavebox{\@hblk@fb}\newsavebox{\@hblk@fc}% -\newsavebox{\@hblk@ga}\newsavebox{\@hblk@gb}\newsavebox{\@hblk@gc}% -\newsavebox{\@hblk@ha}\newsavebox{\@hblk@hb}\newsavebox{\@hblk@hc}% -\newsavebox{\@hblk@ia}\newsavebox{\@hblk@ib}\newsavebox{\@hblk@ic}% -\newlength{\@hblk@a@bef} \newlength{\@hblk@a@aft}% -\newlength{\@hblk@b@bef} \newlength{\@hblk@b@aft}% -\newlength{\@hblk@c@bef} \newlength{\@hblk@c@aft}% -\newlength{\@hblk@d@bef} \newlength{\@hblk@d@aft}% -\newlength{\@hblk@e@bef} \newlength{\@hblk@e@aft}% -\newlength{\@hblk@f@bef} \newlength{\@hblk@f@aft}% -\newlength{\@hblk@g@bef} \newlength{\@hblk@g@aft}% -\newlength{\@hblk@h@bef} \newlength{\@hblk@h@aft}% -\newlength{\@hblk@i@bef} \newlength{\@hblk@i@aft}% -\setlength{\@hblk@a@bef}{0pt} \setlength{\@hblk@a@aft}{0pt}% -\setlength{\@hblk@b@bef}{0pt} \setlength{\@hblk@b@aft}{0pt}% -\setlength{\@hblk@c@bef}{0pt} \setlength{\@hblk@c@aft}{0pt}% -\setlength{\@hblk@d@bef}{0pt} \setlength{\@hblk@d@aft}{0pt}% -\setlength{\@hblk@e@bef}{0pt} \setlength{\@hblk@e@aft}{0pt}% -\setlength{\@hblk@f@bef}{0pt} \setlength{\@hblk@f@aft}{0pt}% -\setlength{\@hblk@g@bef}{0pt} \setlength{\@hblk@g@aft}{0pt}% -\setlength{\@hblk@h@bef}{0pt} \setlength{\@hblk@h@aft}{0pt}% -\setlength{\@hblk@i@bef}{0pt} \setlength{\@hblk@i@aft}{0pt}% -% \end{macrocode}% -% \paragraph{\texttt{newcounter} definitions:}% -% Define all newcounter commands here:% -% \begin{macrocode}% +\newsavebox{\@x@c} \newsavebox{\@x@l} \newsavebox{\@x@r}% +\newsavebox{\fba} \newsavebox{\adrfr} \newsavebox{\adrto}% +\newsavebox{\@sig@box@b}\newsavebox{\@sig@box@c}\newsavebox{\@sig@box@d} +\newsavebox{\@sig@box@e}\newsavebox{\@sig@box@f}\newsavebox{\@sig@box@g} +\newsavebox{\@sig@box@h}\newsavebox{\@sig@box@i}\newsavebox{\@sig@box@j} +% \end{macrocode} +% \paragraph{\texttt{newcounter} definitions:} +% Define all newcounter commands here: +% \begin{macrocode} \newcounter{@c@pos} \newcounter{figure} \newcounter{table}% \newcounter{@sig@tot} \newcounter{@lab@tot@row}% \newcounter{@lab@tot@col} \newcounter{@lab@cnt@row} \newcounter{@lab@cnt@col}% @@ -2044,22 +1949,20 @@ \newcount\@nlfm@util% \newcount\@nlfm@uta% \newcount\@nlfm@utb% -% \end{macrocode}% -% \paragraph{\texttt{newboolean} definitions:}% -% Boolean variables are defined here. Package |ifthen| defines% -% |\newboolean|. Booleans are a good approach for simple decision-making support. In% -% many cases, a default value is set after the boolean is declared.% -% \begin{macrocode}% -\newboolean{@af@c}% -\newboolean{@af@l}% -\newboolean{@af@p}% +% \end{macrocode} +% \paragraph{\texttt{newboolean} definitions:} +% Boolean variables are defined here. Package |ifthen| defines +% |\newboolean|. Booleans are a good approach for simple decision-making support. In +% many cases, a default value is set after the boolean is declared. +% \begin{macrocode} +\newboolean{@addr@fr@l}% +\newboolean{@addr@fr@p}% \newboolean{@addr@fr@e} \setboolean{@addr@fr@e}{false}% \newboolean{@addr@fr@f} \setboolean{@addr@fr@f}{false}% \newboolean{@addr@fr@t} \setboolean{@addr@fr@t}{false}% \newboolean{@addr@swtch} \setboolean{@addr@swtch}{true}% -\newboolean{@at@c}% -\newboolean{@at@l}% -\newboolean{@at@p}% +\newboolean{@addr@to@l}% +\newboolean{@addr@to@p}% \newboolean{@addr@to@f} \setboolean{@addr@to@f}{false}% \newboolean{@addr@to@e} \setboolean{@addr@to@e}{false}% \newboolean{@addr@to@t} \setboolean{@addr@to@t}{false}% @@ -2095,15 +1998,6 @@ \newboolean{@fl} \setboolean{@fl}{true}% \newboolean{@greet@p}% \newboolean{@greet@l}% -\newboolean{@hblk@a} \setboolean{@hblk@a}{false}% -\newboolean{@hblk@b} \setboolean{@hblk@b}{false}% -\newboolean{@hblk@c} \setboolean{@hblk@c}{false}% -\newboolean{@hblk@d} \setboolean{@hblk@d}{false}% -\newboolean{@hblk@e} \setboolean{@hblk@e}{false}% -\newboolean{@hblk@f} \setboolean{@hblk@f}{false}% -\newboolean{@hblk@g} \setboolean{@hblk@g}{false}% -\newboolean{@hblk@h} \setboolean{@hblk@h}{false}% -\newboolean{@hblk@i} \setboolean{@hblk@i}{false}% \newboolean{@hl} \setboolean{@hl}{true}% \newboolean{@in@tab}% \newboolean{@in@makeenv} \setboolean{@in@makeenv}{false}% @@ -2145,7 +2039,6 @@ \newboolean{@memo@n} \setboolean{@memo@n}{false}% \newboolean{@no@cen} \setboolean{@no@cen}{false}% \newboolean{@no@spc} \setboolean{@no@spc}{false}% -\newboolean{@prnt@frm} \setboolean{@prnt@frm}{false}% \newboolean{@ROf@use} \setboolean{@ROf@use}{false}% \newboolean{@Rf@use} \setboolean{@Rf@use}{false}% \newboolean{@rf@use} \setboolean{@rf@use}{false}% @@ -2172,69 +2065,70 @@ \newboolean{@use@all@fr}% \newboolean{@use@all@to}% \newboolean{@use@envlab} \setboolean{@use@envlab}{false}% +\newboolean{@use@water} \setboolean{@use@water}{false}% \newboolean{@ztila} \newboolean{@ztilb}% \newboolean{@pr@p} \setboolean{@pr@p}{false}% \newboolean{@pr@by} -% \end{macrocode}% +% \end{macrocode} % -% \subsection{newlfm commands}% -% Now begin defining new commands.% -% \paragraph{Ordering of date, from-address and to-address:}% -% These commands allow the ordering of date, to-block and from-block:% -% \begin{macrocode}% -\def\@d@pos#1{\def\@intd@pos{#1}}% -\def\@t@pos#1{\def\@intt@pos{#1}}% -\def\@f@pos#1{\def\@intf@pos{#1}}% -% \end{macrocode}% +% \subsection{newlfm commands} +% Now begin defining new commands. +% \paragraph{Ordering of date, from-address and to-address:} +% These commands allow the ordering of date, to-block and from-block: +% \begin{macrocode} +\def\@d@pos#1{\def\@intd@pos{#1}} +\def\@t@pos#1{\def\@intt@pos{#1}} +\def\@f@pos#1{\def\@intf@pos{#1}} +% \end{macrocode} % -% \paragraph{\texttt{keyval} processing:} When using the |keyval|% -% approach to option specification, something similar to the next code% -% must be used. At this point, this is not 100 \% correct, and so it% -% will be altered as soon as I can figger it out.% -% \begin{macrocode}% +% \paragraph{\texttt{keyval} processing:} When using the |keyval| +% approach to option specification, something similar to the next code +% must be used. At this point, this is not 100 \% correct, and so it +% will be altered as soon as I can figger it out. +% \begin{macrocode} \def\newlfmParam{\@ifnextchar[%] -\newlx@i{\newlx@i[]}}% -\def\newlx@i[#1]{{\setkeys{ov}{#1}}}% -\def\Dimens{\@ifnextchar[%]% -\Dimens@i{\Dimens@i[]}}% -\def\Dimens@i[#1]{{\setkeys{ov}{#1}}}% -\def\Language{\@ifnextchar[%]% -\Lang@i{\Lang@i[]}}% -\def\Lang@i[#1]{{\setkeys{ov}{#1}}}% -\def\MemoParam{\@ifnextchar[%]% -\MemoP@i{\MemoP@i[]}}% -\def\MemoP@i[#1]{{\setkeys{ov}{#1}}}% -\def\LetterParam{\@ifnextchar[%]% -\LetrP@i{\LetrP@i[]}}% -\def\LetrP@i[#1]{{\setkeys{ov}{#1}}}% -\def\FAZParam{\@ifnextchar[%]% -\FAXP@i{\FAXP@i[]}}% -\def\FAXP@i[#1]{{\setkeys{ov}{#1}}}% -\def\LetterP#1{\setkeys{ov}{#1}}% -\def\newlfmP#1{\setkeys{ov}{#1}}% -\def\LanguageP#1{\setkeys{ov}{#1}}% -\def\FAXP#1{\setkeys{ov}{#1}}% -\def\DimensP#1{\setkeys{ov}{#1}}% -\def\MemoP#1{\setkeys{ov}{#1}}% -\def\iffixt#1#2{\ifthenelse{\equal{#1}{true}}{\setboolean{#2}{true}}{}}% -\def\iffixf#1#2{\ifthenelse{\equal{#1}{true}}{\setboolean{#2}{false}}{}}% -\def\iffixq#1#2{\ifthenelse{\equal{#1}{true}}{#2}{}}% -% \end{macrocode}% +\newlx@i{\newlx@i[]}} +\def\newlx@i[#1]{{\setkeys{ov}{#1}}} +\def\Dimens{\@ifnextchar[%] +\Dimens@i{\Dimens@i[]}} +\def\Dimens@i[#1]{{\setkeys{ov}{#1}}} +\def\Language{\@ifnextchar[%] +\Lang@i{\Lang@i[]}} +\def\Lang@i[#1]{{\setkeys{ov}{#1}}} +\def\MemoParam{\@ifnextchar[%] +\MemoP@i{\MemoP@i[]}} +\def\MemoP@i[#1]{{\setkeys{ov}{#1}}} +\def\LetterParam{\@ifnextchar[%] +\LetrP@i{\LetrP@i[]}} +\def\LetrP@i[#1]{{\setkeys{ov}{#1}}} +\def\FAZParam{\@ifnextchar[%] +\FAXP@i{\FAXP@i[]}} +\def\FAXP@i[#1]{{\setkeys{ov}{#1}}} +\def\LetterP#1{\setkeys{ov}{#1}} +\def\newlfmP#1{\setkeys{ov}{#1}} +\def\LanguageP#1{\setkeys{ov}{#1}} +\def\FAXP#1{\setkeys{ov}{#1}} +\def\DimensP#1{\setkeys{ov}{#1}} +\def\MemoP#1{\setkeys{ov}{#1}} +\def\iffixt#1#2{\ifthenelse{\equal{#1}{true}}{\setboolean{#2}{true}}{}} +\def\iffixf#1#2{\ifthenelse{\equal{#1}{true}}{\setboolean{#2}{false}}{}} +\def\iffixq#1#2{\ifthenelse{\equal{#1}{true}}{#2}{}} +% \end{macrocode} % -% \paragraph{Language option definitions:}% -% These options define the language for the letter. These macros are not% -% frequently manipulated. Basically, the strings defined here% -% set up the printing of structural elements of a memo or letter, such as% -% the ``From'' or ``To'' strings.% -% These terms are used at various points in printing letters and memos.% -% They are American terms; your mileage may vary. Inclusion of other% -% terms is encouraged, especially when another language group is served.% -% \begin{macrocode}% +% \paragraph{Language option definitions:} +% These options define the language for the letter. These macros are not +% frequently manipulated. Basically, the strings defined here +% set up the printing of structural elements of a memo or letter, such as +% the ``From'' or ``To'' strings. +% These terms are used at various points in printing letters and memos. +% They are American terms; your mileage may vary. Inclusion of other +% terms is encouraged, especially when another language group is served. +% \begin{macrocode} \def\DatePhrase#1{\def\@date@phr{#1}}% \def\PhrFAXcovp#1{\def\@fax@cover@line{#1}}% \def\PhrFAXpgcnt#1{\def\@fax@page@count{#1}}% \def\PhrEmail#1{\def\@email@phr{#1}}% -\def\PhrFax#1{\def\@fax@phr{#1}}% +\def\PhrFax#1{\def\@fax@phr{#1}} \def\PhrPager#1{\def\@pager@phr{#1}}% \def\PhrDocument#1{\def\@doc@phr{#1}}% \def\PhrPhone#1{\def\@phn@phr{#1}}% @@ -2254,42 +2148,59 @@ \def\PhrMore#1{\def\@more@phr{#1}}% \def\PhrPRend#1{\def\@PRend@phr{#1}}% \def\lth{}\def\sig{}\def\adr{}% -\def\letrh#1{\def\@ltr@head{#1}}% -\define@key{ov}{letrh}{\def\@ltr@head{#1}}% -\def\@adr@to{}\def\@adr@fr{}\def\@ltr@head{}\def\@sig@blok{}% -\def\addrt#1{\def\@adr@to{#1}\setboolean{@over@setto}{true}}% +\def\letrh#1{\def\@ltr@head{#1}}% +\def\waterpage#1{\def\@water@page{#1}\setboolean{@use@water}{true}}% +\define@key{ov}{letrh}{\def\@ltr@head{#1}}% +\define@key{ov}{waterpage}{\def\@water@page{#1}\setboolean{@use@water}{true}}% +\def\@adr@to{}\def\@adr@fr{}\def\@ltr@head{}\def\@sig@blok{}\def\@water@page{}% +\def\addrt#1{\def\@adr@to{#1}\setboolean{@over@setto}{true}}% \define@key{ov}{addrt}{\def\@adr@to{#1}\setboolean{@over@setto}{true}}% \def\addrf#1{\def\@adr@fr{#1}\setboolean{@over@setfr}{true}}% -\define@key{ov}{addrf}{\def\@adr@fr{#1}\setboolean{@over@setfr}{true}}% -\def\sigtr#1{\def\@sig@blok{#1}\setboolean{@over@sigbl}{true}}% -\define@key{ov}{sigtr}{\def\@sig@blok{#1}\setboolean{@over@sigbl}{true}}% -\def\MinHead#1{\setlength{\@Min@Hgt@Head}{#1}}% -\define@key{ov}{MinHead}{\setlength{\@Min@Hgt@Head}{#1}}% -\def\minhead#1{\setlength{\@Min@Hgt@head}{#1}}% -\define@key{ov}{minhead}{\setlength{\@Min@Hgt@head}{#1}}% -\def\MinLeft#1{\setlength{\@Min@Hgt@Left}{#1}}% -\define@key{ov}{MinLeft}{\setlength{\@Min@Hgt@Left}{#1}}% -\def\minleft#1{\setlength{\@Min@Hgt@left}{#1}}% -\define@key{ov}{minleft}{\setlength{\@Min@Hgt@left}{#1}}% -\def\MinFoot#1{\setlength{\@Min@Hgt@Foot}{#1}}% +\define@key{ov}{addrf}{\def\@adr@fr{#1}\setboolean{@over@setfr}{true}}% +\def\sigtr#1{\def\@sig@blok{#1}\setboolean{@over@sigbl}{true}}%% +\define@key{ov}{sigtr}{\def\@sig@blok{#1}\setboolean{@over@sigbl}{true}}% +\def\MinHead#1{\setlength{\@Min@Hgt@Head}{#1}} +\define@key{ov}{MinHead}{\setlength{\@Min@Hgt@Head}{#1}}% +\def\minhead#1{\setlength{\@Min@Hgt@head}{#1}} +\define@key{ov}{minhead}{\setlength{\@Min@Hgt@head}{#1}}% +\def\MinLeft#1{\setlength{\@Min@Hgt@Left}{#1}} +\define@key{ov}{MinLeft}{\setlength{\@Min@Hgt@Left}{#1}}% +\def\minleft#1{\setlength{\@Min@Hgt@left}{#1}} +\define@key{ov}{minleft}{\setlength{\@Min@Hgt@left}{#1}}% +\def\MinFoot#1{\setlength{\@Min@Hgt@Foot}{#1}} \define@key{ov}{MinFoot}{\setlength{\@Min@Hgt@Foot}{#1}}% -\def\minfoot#1{\setlength{\@Min@Hgt@foot}{#1}}% +\def\minfoot#1{\setlength{\@Min@Hgt@foot}{#1}} \define@key{ov}{minfoot}{\setlength{\@Min@Hgt@foot}{#1}}% -\def\MinRight#1{\setlength{\@Min@Hgt@Right}{#1}}% +\def\MinRight#1{\setlength{\@Min@Hgt@Right}{#1}} \define@key{ov}{MinRight}{\setlength{\@Min@Hgt@Right}{#1}}% -\def\minright#1{\setlength{\@Min@Hgt@right}{#1}}% +\def\minright#1{\setlength{\@Min@Hgt@right}{#1}} \define@key{ov}{minright}{\setlength{\@Min@Hgt@right}{#1}}% \def\@def@l{american}% \def\@am@phr{% - \DatePhrase{Date} \PhrFAXcovp{FAX Cover Page} \PhrFAXpgcnt{FAX Page Count}% - \PhrFax{FAX} \PhrPager{Pager} \PhrEmail{E-mail}% - \PhrDocument{Document} \PhrPhone{Telephone} \PhrRe{Re}% - \PhrSubre{\ensuremath{\mathrm{Re}_2}} \PhrCc{cc}% - \PhrPs{Ps} \PhrMessage{Message} \PhrPps{Pps}% - \PhrPpps{Ppps} \PhrEncl{Encl} \PhrPager{Page}% - \PhrTo{To} \PhrFrom{From} \PhrRegard{Regarding}% - \PhrContact{Contact} \PhrRelease{For Immediate Release}% - \PhrMore{--- more ---} \PhrPRend{\# \# \#}% + \DatePhrase{Date}% + \PhrFAXcovp{FAX Cover Page}% + \PhrFAXpgcnt{FAX Page Count}% + \PhrFax{FAX}% + \PhrPager{Pager}% + \PhrEmail{E-mail}% + \PhrDocument{Document}% + \PhrPhone{Telephone}% + \PhrRe{Re}% + \PhrSubre{\ensuremath{\mathrm{Re}_2}}% + \PhrCc{cc}% + \PhrPs{Ps}% + \PhrMessage{Message}% + \PhrPps{Pps}% + \PhrPpps{Ppps}% + \PhrEncl{Encl}% + \PhrPager{Page}% + \PhrTo{To}% + \PhrFrom{From}% + \PhrRegard{Regarding}% + \PhrContact{Contact}% + \PhrRelease{For Immediate Release}% + \PhrMore{--- more ---}% + \PhrPRend{\# \# \#}% } \InputIfFileExists{extracd.tex}% {\typeout{Reading alternative macro definitions from extracd.tex}}% @@ -2317,17 +2228,17 @@ {\def\@def@l{piglatin}\setboolean{@l@pi}{true} \@pl@phr}% \define@key{ov}{piglatin}[true]% {\iffixq{#1}{\def\@def@l{piglatin}\setboolean{@l@pi}{true} \@pl@phr}}% -% \end{macrocode}% +% \end{macrocode} % -% \begin{macro}{Lengths}% -% Length definitions are set up here. This is done by setting options mostly.% -% These commands are either internal (begin with |@|) or user-optional (do% -% not begin with |@|). User-optional commands are defined in the text% -% above. % -% \begin{macrocode}% -\define@key{ov}{textwidthsize}{\setlength{\@text@width}{#1}}% +% \begin{macro}{Lengths} +% Length definitions are set up here. This is done by setting options mostly. +% These commands are either internal (begin with |@|) or user-optional (do +% not begin with |@|). User-optional commands are defined in the text +% above. +% \begin{macrocode} +\define@key{ov}{textwidthsize}{\setlength{\@text@width}{#1}} \def\textwidthsize#1{\setlength{\@text@width}{#1}}% -\define@key{ov}{textheightsize}{\setlength{\@text@height}{#1}}% +\define@key{ov}{textheightsize}{\setlength{\@text@height}{#1}} \def\textheightsize#1{\setlength{\@text@height}{#1}}% \define@key{ov}{bottommarginskip}{\setlength{\@marg@bt@a}{#1}}% \def\bottommarginskip#1{\setlength{\@marg@bt@a}{#1}}% @@ -2357,18 +2268,18 @@ {\setlength{\@marg@rt@tp@d}{#1}\setboolean{@marg@rt@fl@tp}{true}}% \define@key{ov}{leftmarginskipleft}% {\setlength{\@marg@lt@l}{#1}\setboolean{@marg@lt@fl@tp}{false}}% -\def\leftmarginskipleft#1{\setlength{\@marg@lt@l}{#1}}% +\def\leftmarginskipleft#1{\setlength{\@marg@lt@l}{#1}}% \define@key{ov}{rightmarginskipleft}% {\setlength{\@marg@rt@l}{#1}\setboolean{@marg@lt@fl@tp}{false}}% -\def\rightmarginskipleft#1{\setlength{\@marg@rt@l}{#1}}% -\def\leftmarginskipright#1{\setlength{\@marg@lt@r}{#1}}% -\define@key{ov}{leftmarginskipright}{\setlength{\@marg@lt@r}{#1}}% -\def\rightmarginskipright#1{\setlength{\@marg@rt@r}{#1}}% -\define@key{ov}{rightmarginskipright}{\setlength{\@marg@rt@r}{#1}}% -\def\dateskipbefore#1{\setlength{\@dt@sk@b}{#1}}% -\define@key{ov}{dateskipbefore}{\setlength{\@dt@sk@b}{#1}}% -\def\dateskipafter#1{\setlength{\@dt@sk@a}{#1}}% -\define@key{ov}{dateskipafter}{\setlength{\@dt@sk@a}{#1}}% +\def\rightmarginskipleft#1{\setlength{\@marg@rt@l}{#1}}% +\def\leftmarginskipright#1{\setlength{\@marg@lt@r}{#1}}% +\define@key{ov}{leftmarginskipright}{\setlength{\@marg@lt@r}{#1}}% +\def\rightmarginskipright#1{\setlength{\@marg@rt@r}{#1}}% +\define@key{ov}{rightmarginskipright}{\setlength{\@marg@rt@r}{#1}}% +\def\dateskipbefore#1{\setlength{\@dt@sk@b}{#1}}% +\define@key{ov}{dateskipbefore}{\setlength{\@dt@sk@b}{#1}}% +\def\dateskipafter#1{\setlength{\@dt@sk@a}{#1}}% +\define@key{ov}{dateskipafter}{\setlength{\@dt@sk@a}{#1}}% \def\addrfromskipafter#1{\setlength{\@addr@fr@sk@a}{#1}}% \define@key{ov}{addrfromskipafter}{\setlength{\@addr@fr@sk@a}{#1}}% \def\addrfromskipbefore#1{\setlength{\@addr@fr@sk@b}{#1}}% @@ -2379,12 +2290,14 @@ \define@key{ov}{addrtoskipbefore}{\setlength{\@addr@to@sk@b}{#1}}% \def\greettoskipafter#1{\setlength{\@greet@to@sk@a}{#1}}% \define@key{ov}{greettoskipafter}{\setlength{\@greet@to@sk@a}{#1}}% -\def\greettoskipbefore#1{\setlength{\@greet@to@sk@b}{#1}}% -\define@key{ov}{greettoskipbefore}{\setlength{\@greet@to@sk@b}{#1}}% \def\sigskipbefore#1{\setlength{\@sig@sk@b}{#1}}% \define@key{ov}{sigskipbefore}{\setlength{\@sig@sk@b}{#1}}% \def\sigskipafter#1{\setlength{\@sig@sk@a}{#1}}% \define@key{ov}{sigskipafter}{\setlength{\@sig@sk@a}{#1}}% +\def\closeskipbefore#1{\setlength{\@cls@sk@b}{#1}}% +\define@key{ov}{closeskipbefore}{\setlength{\@cls@sk@b}{#1}}% +\def\closeskipafter#1{\setlength{\@cls@sk@a}{#1}}% +\define@key{ov}{closeskipafter}{\setlength{\@cls@sk@a}{#1}}% \def\sigskipcolumn#1{\setlength{\@sig@sk@c}{#1}}% \define@key{ov}{sigskipcolumn}{\setlength{\@sig@sk@c}{#1}}% \def\sigskiprow#1{\setlength{\@sig@sk@r}{#1}}% @@ -2422,8 +2335,8 @@ % % \begin{macrocode} \def\@opt@stm{ -\setboolean{@af@p}{false}% -\setboolean{@at@p}{false}% +\setboolean{@addr@fr@p}{false}% +\setboolean{@addr@to@p}{false}% \setboolean{@memo@bl}{true}% \setboolean{@greet@p}{false}% \setboolean{@dt@l}{false}% @@ -2433,8 +2346,8 @@ \setboolean{@sig@mp}{true}% }% \def\@opt@stpr{ -\setboolean{@af@p}{false}% -\setboolean{@at@p}{false}% +\setboolean{@addr@fr@p}{false}% +\setboolean{@addr@to@p}{false}% \setboolean{@memo@bl}{true}% \setboolean{@greet@p}{false}% \setboolean{@dt@l}{false}% @@ -2444,8 +2357,8 @@ \setboolean{@sig@mp}{true}% }% \def\@opt@flm{ -\setboolean{@af@p}{false}% -\setboolean{@at@p}{false}% +\setboolean{@addr@fr@p}{false}% +\setboolean{@addr@to@p}{false}% \setboolean{@memo@bl}{true}% \setboolean{@greet@p}{false}% \setboolean{@dt@l}{false}% @@ -2464,37 +2377,37 @@ \setboolean{@memo@m}{true}% \setboolean{@memo@n}{true}% }% -\DeclareOption{memoaddrto}{\setboolean{@memo@b}{true}}% +\DeclareOption{memoaddrto}{\setboolean{@memo@b}{true}}% \define@key{ov}{memoaddrto}[true]{\iffixt{#1}{@memo@b}}% -\DeclareOption{memoemailto}{\setboolean{@memo@k}{true}}% +\DeclareOption{memoemailto}{\setboolean{@memo@k}{true}}% \define@key{ov}{memoemailto}[true]{\iffixt{#1}{@memo@k}}% -\DeclareOption{memophoneto}{\setboolean{@memo@c}{true}}% +\DeclareOption{memophoneto}{\setboolean{@memo@c}{true}}% \define@key{ov}{memophoneto}[true]{\iffixt{#1}{@memo@c}}% -\DeclareOption{memopagerto}{\setboolean{@memo@n}{true}}% +\DeclareOption{memopagerto}{\setboolean{@memo@n}{true}}% \define@key{ov}{memopagerto}[true]{\iffixt{#1}{@memo@n}}% -\DeclareOption{memofaxto}{\setboolean{@memo@d}{true}}% +\DeclareOption{memofaxto}{\setboolean{@memo@d}{true}}% \define@key{ov}{memofaxto}[true]{\iffixt{#1}{@memo@d}}% -\DeclareOption{memoaddrfrom}{\setboolean{@memo@h}{true}}% +\DeclareOption{memoaddrfrom}{\setboolean{@memo@h}{true}}% \define@key{ov}{memoaddrfrom}[true]{\iffixt{#1}{@memo@h}}% -\DeclareOption{memoemailfrom}{\setboolean{@memo@l}{true}}% +\DeclareOption{memoemailfrom}{\setboolean{@memo@l}{true}}% \define@key{ov}{memoemailfrom}[true]{\iffixt{#1}{@memo@l}}% -\DeclareOption{memopagerfrom}{\setboolean{@memo@m}{true}}% +\DeclareOption{memopagerfrom}{\setboolean{@memo@m}{true}}% \define@key{ov}{memopagerfrom}[true]{\iffixt{#1}{@memo@m}}% -\DeclareOption{memophonefrom}{\setboolean{@memo@i}{true}}% +\DeclareOption{memophonefrom}{\setboolean{@memo@i}{true}}% \define@key{ov}{memophonefrom}[true]{\iffixt{#1}{@memo@i}}% -\DeclareOption{memofaxfrom}{\setboolean{@memo@j}{true}}% +\DeclareOption{memofaxfrom}{\setboolean{@memo@j}{true}}% \define@key{ov}{memofaxfrom}[true]{\iffixt{#1}{@memo@j}}% -\DeclareOption{memodate}{\setboolean{@dt@p}{true}}% +\DeclareOption{memodate}{\setboolean{@dt@p}{true}}% \define@key{ov}{memodate}[true]{\iffixt{#1}{@dt@p}}% -\DeclareOption{memonofrom}{\setboolean{@memo@e}{false}}% -\define@key{ov}{memonofrom}[false]{\iffixt{#1}{@memo@e}}% -\DeclareOption{memonoto}{\setboolean{@memo@g}{false}}% -\define@key{ov}{memonoto}[false]{\iffixt{#1}{@memo@g}}% -\DeclareOption{memonore}{\setboolean{@memo@f}{false}}% -\define@key{ov}{memonore}[false]{\iffixt{#1}{@memo@f}}%% -\DeclareOption{fullmemo}{\@opt@flm}% +\DeclareOption{memonofrom} {\setboolean{@memo@e}{true}}% +\define@key{ov}{memonofrom}[true]{\iffixt{#1}{@memo@e}}% +\DeclareOption{memonoto} {\setboolean{@memo@g}{true}}% +\define@key{ov}{memonoto}[true]{\iffixt{#1}{@memo@g}}% +\DeclareOption{memonore} {\setboolean{@memo@f}{true}}% +\define@key{ov}{memonore}[true]{\iffixt{#1}{@memo@f}}% +\DeclareOption{fullmemo}{\@opt@flm}% \define@key{ov}{fullmemo}[true]{\iffixq{#1}{\@opt@flm}}% -\DeclareOption{stdmemo}{\@opt@stm}% +\DeclareOption{stdmemo}{\@opt@stm}% \define@key{ov}{stdmemo}[true]{\iffixq{#1}{\@opt@stm}}% % \end{macrocode} % \end{macro} @@ -2505,8 +2418,8 @@ % % \begin{macrocode} \def\@opt@pr{ -\setboolean{@af@p}{true}% -\setboolean{@at@p}{false}% +\setboolean{@addr@fr@p}{true}% +\setboolean{@addr@to@p}{false}% \setboolean{@pr@p}{true}% \setboolean{@greet@p}{false}% \setboolean{@dt@l}{false}% @@ -2557,57 +2470,6 @@ % \end{macrocode} % \end{macro} % -% \begin{macro}{Specials} -% Special definitions. These commands define the tools for including -% specials into a letter. A special is a piece of text not covered by -% the usual definitions. Specials can be included by the command -% |\speciala{textx}{row}{col}|. The special is printed in the -% ``address-area'' of the letter. The ``address-area'' is divided into a -% grid that is 6 rows by 3 columns. -% \begin{macrocode} -\providecommand{\speciala}[3] - {\def\@spec@a{#1}\def\@row@a{#2}\def\@col@a{#3}\setboolean{@use@spec@a}{true}}% -\def\@col@a{}\def\@row@a{}\def\@spec@a{} -\newboolean{@use@spec@a}\setboolean{@use@spec@a}{false}% -\providecommand{\specialb}[3] - {\def\@spec@b{#1}\def\@row@b{#2}\def\@col@b{#3}\setboolean{@use@spec@b}{true}}% -\def\@col@b{}\def\@row@b{}\def\@spec@b{} -\newboolean{@use@spec@b}\setboolean{@use@spec@b}{false}% -\providecommand{\specialc}[3] - {\def\@spec@c{#1}\def\@row@c{#2}\def\@col@c{#3}\setboolean{@use@spec@c}{true}}% -\def\@col@c{}\def\@row@c{}\def\@spec@c{} -\newboolean{@use@spec@c}\setboolean{@use@spec@c}{false}% -\providecommand{\speciald}[3] - {\def\@spec@d{#1}\def\@row@d{#2}\def\@col@d{#3}\setboolean{@use@spec@d}{true}}% -\def\@col@d{}\def\@row@d{}\def\@spec@d{} -\newboolean{@use@spec@d}\setboolean{@use@spec@d}{false}% -\providecommand{\speciale}[3] - {\def\@spec@e{#1}\def\@row@e{#2}\def\@col@e{#3}\setboolean{@use@spec@e}{true}}% -\def\@col@e{}\def\@row@e{}\def\@spec@e{} -\newboolean{@use@spec@e}\setboolean{@use@spec@e}{false}% -\providecommand{\specialf}[3] - {\def\@spec@f{#1}\def\@row@f{#2}\def\@col@f{#3}\setboolean{@use@spec@f}{true}}% -\def\@col@f{}\def\@row@f{}\def\@spec@f{} -\newboolean{@use@spec@f}\setboolean{@use@spec@f}{false}% -\providecommand{\specialg}[3] - {\def\@spec@g{#1}\def\@row@g{#2}\def\@col@g{#3}\setboolean{@use@spec@g}{true}}% -\def\@col@g{}\def\@row@g{}\def\@spec@g{} -\newboolean{@use@spec@g}\setboolean{@use@spec@g}{false}% -\providecommand{\specialh}[3] - {\def\@spec@h{#1}\def\@row@h{#2}\def\@col@h{#3}\setboolean{@use@spec@h}{true}}% -\def\@col@h{}\def\@row@h{}\def\@spec@h{} -\newboolean{@use@spec@h}\setboolean{@use@spec@h}{false}% -\providecommand{\spacespa}[2]{\def\@sp@bef@a{#1}\def\@sp@aft@a{#2}} \spacespa{0pt}{0pt}% -\providecommand{\spacespb}[2]{\def\@sp@bef@b{#1}\def\@sp@aft@b{#2}} \spacespb{0pt}{0pt}% -\providecommand{\spacespc}[2]{\def\@sp@bef@c{#1}\def\@sp@aft@c{#2}} \spacespc{0pt}{0pt}% -\providecommand{\spacespd}[2]{\def\@sp@bef@d{#1}\def\@sp@aft@d{#2}} \spacespd{0pt}{0pt}% -\providecommand{\spacespe}[2]{\def\@sp@bef@e{#1}\def\@sp@aft@e{#2}} \spacespe{0pt}{0pt}% -\providecommand{\spacespf}[2]{\def\@sp@bef@f{#1}\def\@sp@aft@f{#2}} \spacespf{0pt}{0pt}% -\providecommand{\spacespg}[2]{\def\@sp@bef@g{#1}\def\@sp@aft@g{#2}} \spacespg{0pt}{0pt}% -\providecommand{\spacesph}[2]{\def\@sp@bef@h{#1}\def\@sp@aft@h{#2}} \spacesph{0pt}{0pt}% -% \end{macrocode}% -% \end{macro} -% % \begin{macro}{Letters} % Letter definitions. These commands define the overall structures for % standard letters (with and without from-addresses). There are commands @@ -2616,16 +2478,16 @@ % types of information. % \begin{macrocode} \def\@opt@slr{ -\setboolean{@af@l}{false}% -\setboolean{@af@p}{true}% -\setboolean{@at@p}{true}% +\setboolean{@addr@fr@l}{false}% +\setboolean{@addr@fr@p}{true}% +\setboolean{@addr@to@p}{true}% \setboolean{@dt@p}{true}% \setboolean{@dt@l}{false}% \setboolean{@dt@c}{false}% \setboolean{@greet@p}{true}% \setboolean{@sig@p}{true}% \setboolean{@sig@mp}{false}% -\setboolean{@at@l}{true}% +\setboolean{@addr@to@l}{true}% \setboolean{@memo@bl}{false}% \setboolean{@dt@l}{false}% \setboolean{@sig@l}{false}% @@ -2633,16 +2495,16 @@ \@d@pos{1}\@t@pos{3}\@f@pos{2}\setboolean{@s@b@s}{false}} \DeclareOption{stdletter}{\@opt@slr}% \define@key{ov}{stdletter}[true]{\iffixq{#1}{\@opt@slr}}% -\def\@opt@sln{\setboolean{@af@l}{false} % -\setboolean{@af@p}{false} % -\setboolean{@at@p}{true} % +\def\@opt@sln{\setboolean{@addr@fr@l}{false} % +\setboolean{@addr@fr@p}{false} % +\setboolean{@addr@to@p}{true} % \setboolean{@dt@p}{true}% \setboolean{@dt@l}{false}% \setboolean{@dt@c}{false}% \setboolean{@greet@p}{true}% \setboolean{@sig@p}{true}% \setboolean{@sig@mp}{false}% -\setboolean{@at@l}{true} % +\setboolean{@addr@to@l}{true} % \setboolean{@memo@bl}{false}% \setboolean{@dt@l}{false}% \setboolean{@sig@l}{false}% @@ -2650,10 +2512,10 @@ \@d@pos{1}\@t@pos{3}\@f@pos{2}\setboolean{@s@b@s}{false}} \DeclareOption{stdletternofrom} {\@opt@sln}% \define@key{ov}{stdletternofrom}[true]{\iffixq{#1}{\@opt@sln}}% -\def\@opt@blr{\setboolean{@af@l}{true}% -\setboolean{@af@p}{true}% +\def\@opt@blr{\setboolean{@addr@fr@l}{true}% +\setboolean{@addr@fr@p}{true}% \setboolean{@memo@bl}{false}% -\setboolean{@at@l}{true}% +\setboolean{@addr@to@l}{true}% \setboolean{@dt@l}{true}% \setboolean{@dt@c}{false}% \setboolean{@sig@l}{true}% @@ -2663,10 +2525,10 @@ \@d@pos{1}\@t@pos{3}\@f@pos{2}\setboolean{@s@b@s}{false}} \DeclareOption{busletter} {\@opt@blr}% \define@key{ov}{busletter}[true]{\iffixq{#1}{\@opt@blr}}% -\def\@opt@bln{\setboolean{@af@l}{true}% -\setboolean{@af@p}{false}% +\def\@opt@bln{\setboolean{@addr@fr@l}{true}% +\setboolean{@addr@fr@p}{false}% \setboolean{@memo@bl}{false}% -\setboolean{@at@l}{true}% +\setboolean{@addr@to@l}{true}% \setboolean{@dt@l}{true}% \setboolean{@dt@c}{false}% \setboolean{@sig@l}{true}% @@ -2677,14 +2539,14 @@ \DeclareOption{busletternofrom} {\@opt@bln}% \newboolean{@test@opt}\setboolean{@test@opt}{false} \define@key{ov}{busletternofrom}[true]{\iffixq{#1}{\@opt@bln}}% -\DeclareOption{addrfromleft} {\setboolean{@af@l}{true}}% -\define@key{ov}{addrfromleft}[true]{\iffixt{#1}{@af@l}}% -\DeclareOption{addrfromright}{\setboolean{@af@l}{false}}% -\define@key{ov}{addrfromright}[true]{\iffixf{#1}{@af@l}}% -\DeclareOption{addrtoleft} {\setboolean{@at@l}{true}}% -\define@key{ov}{addrtoleft}[true]{\iffixt{#1}{@at@l}}% -\DeclareOption{addrtoright} {\setboolean{@at@l}{false}}% -\define@key{ov}{addrtoright}[true]{\iffixf{#1}{@at@l}}% +\DeclareOption{addrfromleft} {\setboolean{@addr@fr@l}{true}}% +\define@key{ov}{addrfromleft}[true]{\iffixt{#1}{@addr@fr@l}}% +\DeclareOption{addrfromright}{\setboolean{@addr@fr@l}{false}}% +\define@key{ov}{addrfromright}[true]{\iffixf{#1}{@addr@fr@l}}% +\DeclareOption{addrtoleft} {\setboolean{@addr@to@l}{true}}% +\define@key{ov}{addrtoleft}[true]{\iffixt{#1}{@addr@to@l}}% +\DeclareOption{addrtoright} {\setboolean{@addr@to@l}{false}}% +\define@key{ov}{addrtoright}[true]{\iffixf{#1}{@addr@to@l}}% \DeclareOption{addrtoemail} {\setboolean{@addr@to@e}{true}}% \define@key{ov}{addrtoemail}[true]{\iffixt{#1}{@addr@to@e}}% \DeclareOption{addrtophone} {\setboolean{@addr@to@t}{true}}% @@ -2708,7 +2570,7 @@ \def\Alaba{\def\@labname{Avery5160,nolines,dateno}% \setboolean{@set@env}{true}\setboolean{@use@envlab}{false} \def\@tab@just{rrr}\labpl{10.125in}% \setcounter{@lab@tot@row}{10} \setcounter{@lab@tot@col}{3} \btwlb{5pt}% - \boxht{73pt} \boxwd{164pt} \topht{90pt} \lftwd{-88pt} \setlength{\@Hgt@Foot}{0pt}}% + \boxht{67pt} \boxwd{174pt} \topht{38pt} \lftwd{-77pt} \setlength{\@Hgt@Foot}{0pt}}% \def\Alabb{\def\@labname{Avery5161,nolines,dateno}% \setboolean{@set@env}{true}\setboolean{@use@envlab}{false} \def\@tab@just{rr}\labpl{10.125in}% \setcounter{@lab@tot@row}{10} \setcounter{@lab@tot@col}{2} \btwlb{8pt}% @@ -2770,14 +2632,14 @@ % Set the marginal gap 20p \DeclareOption{biggap}{\setboolean{@gap@small}{false}}% % Do not print from-address. -\DeclareOption{addrfromno}{\setboolean{@af@p}{false}}% -\DeclareOption{noaddrfr}{\setboolean{@af@p}{false}}% -\DeclareOption{noaddrfrom}{\setboolean{@af@p}{false}}% -\define@key{ov}{noaddrfrom}[true]{\iffixf{#1}{@af@p}}% +\DeclareOption{addrfromno}{\setboolean{@addr@fr@p}{false}}% +\DeclareOption{noaddrfr}{\setboolean{@addr@fr@p}{false}}% +\DeclareOption{noaddrfrom}{\setboolean{@addr@fr@p}{false}}% +\define@key{ov}{noaddrfrom}[true]{\iffixf{#1}{@addr@fr@p}}% % Do not print to-address. -\DeclareOption{addrtono}{\setboolean{@at@p}{false}}% -\DeclareOption{noaddrto}{\setboolean{@at@p}{false}}% -\define@key{ov}{noaddrto}[true]{\iffixf{#1}{@at@p}}% +\DeclareOption{addrtono}{\setboolean{@addr@to@p}{false}}% +\DeclareOption{noaddrto}{\setboolean{@addr@to@p}{false}}% +\define@key{ov}{noaddrto}[true]{\iffixf{#1}{@addr@to@p}}% % Do not print greeting \DeclareOption{greetno}{\setboolean{@greet@p}{false}}% \define@key{ov}{nogreet}[true]{\iffixf{#1}{@greet@p}}% @@ -2837,8 +2699,8 @@ \define@key{ov}{signatureno}[true]{\iffixf{#1}{@sig@p}}% % Print all fr \info. \def\@fix@all@fr{\setboolean{@use@all@fr}{true} -\setboolean{@af@p}{true}% -\setboolean{@af@l}{true}% +\setboolean{@addr@fr@p}{true}% +\setboolean{@addr@fr@l}{true}% \setboolean{@addr@fr@f}{true}% \setboolean{@addr@fr@e}{true}% \setboolean{@addr@fr@t}{true}}% @@ -2847,8 +2709,8 @@ \define@key{ov}{printallfrom}[true]{\iffixq{#1}{\@fix@all@fr}}% % Print all to \info. \def\@fix@all@to{\setboolean{@use@all@to}{true} -\setboolean{@at@p}{true}% -\setboolean{@at@l}{true}% +\setboolean{@addr@to@p}{true}% +\setboolean{@addr@to@l}{true}% \setboolean{@addr@to@f}{true}% \setboolean{@addr@to@e}{true}% \setboolean{@addr@to@t}{true}}% @@ -2897,62 +2759,28 @@ \setboolean{@B@h}{true}\setboolean{@B@r}{true}% \setboolean{@b@f}{true}\setboolean{@b@l}{true}% \setboolean{@b@h}{true}\setboolean{@b@r}{true}}}% -% Use envelopes -\def\@set@pap#1#2#3{\def\@paper@type{#1}\setlength\@stock@height{#2}\setlength\@stock@width{#3}}% \DeclareOption{useenvlab}{\setboolean{@set@env}{false}\setboolean{@use@envlab}{true}}% \define@key{ov}{useenvlab}[true]{ \iffixq{#1}{\setboolean{@use@envlab}{true}\setboolean{@set@env}{false}}}% -% Use letterpaper -\DeclareOption{letterpaper}{\@set@pap{letterpaper}{11in}{8.5in}}% -\define@key{ov}{letterpaper}[true]{\iffixq{#1}{\@set@pap{letterpaper}{11in}{8.5in}}}% -% Use letterpaper -\DeclareOption{bigpaper}{\@set@pap{bigpaper}{17in}{11in}}% -\define@key{ov}{bigpaper}[true]{\iffixq{#1}{\@set@pap{bigpaper}{17in}{11in}}}% -% Use legalpaper -\DeclareOption{legalpaper}{\@set@pap{legalpaper}{14in}{8.5in}}% -\define@key{ov}{legalpaper}[true]{\iffixq{#1}{\@set@pap{legalpaper}{14in}{8.5in}}}% -% Use executivepaper -\DeclareOption{executivepaper}{\@set@pap{executivepaper}{10.5in}{7.25in}}% -\define@key{ov}{executivepaper}[true]{\iffixq{#1}{\@set@pap{executivepaper}{10.5in}{7.25in}}}% -% Use ebook -\DeclareOption{ebook}{\@set@pap{ebook}{9in}{6in}}% -\define@key{ov}{ebook}[true]{\iffixq{#1}{\@set@pap{ebook}{9in}{6in}}}% -% Use a3 -\DeclareOption{a3paper}{\@set@pap{a3paper}{420mm}{297mm}}% -\define@key{ov}{a3paper}[true]{\iffixq{#1}{\@set@pap{a3paper}{420mm}{297mm}}}% -% Use a4 -\DeclareOption{a4paper}{\@set@pap{a4paper}{297mm}{210mm}}% -\define@key{ov}{a4paper}[true]{\iffixq{#1}{\@set@pap{a4paper}{297mm}{210mm}}}% -% Use a5 -\DeclareOption{a5paper}{\@set@pap{a5paper}{210mm}{148mm}}% -\define@key{ov}{a5paper}[true]{\iffixq{#1}{\@set@pap{a5paper}{210mm}{148mm}}}% -% Use a6 -\DeclareOption{a6paper}{\@set@pap{a6paper}{148mm}{105mm}}% -\define@key{ov}{a6paper}[true]{\iffixq{#1}{\@set@pap{a6paper}{148mm}{105mm}}}% -% Use b3 -\DeclareOption{b3paper}{\@set@pap{b3paper}{500mm}{353mm}}% -\define@key{ov}{b3paper}[true]{\iffixq{#1}{\@set@pap{b3paper}{500mm}{353mm}}}% -% Use b4 -\DeclareOption{b4paper}{\@set@pap{b4paper}{353mm}{250mm}}% -\define@key{ov}{b4paper}[true]{\iffixq{#1}{\@set@pap{b4paper}{353mm}{250mm}}}% -% Use b5 -\DeclareOption{b5paper}{\@set@pap{b5paper}{250mm}{176mm}}% -\define@key{ov}{b5paper}[true]{\iffixq{#1}{\@set@pap{b5paper}{250mm}{176mm}}}% -% Use b6 -\DeclareOption{b6paper}{\@set@pap{b6paper}{176mm}{125mm}}% -\define@key{ov}{b6paper}[true]{\iffixq{#1}{\@set@pap{b6paper}{176mm}{125mm}}}% -% Set default options here -\setkeys{ov}{textwidthsize=-1pt,textheightsize=-1pt,bottommarginskip=5pt,letterpaper,% +\def\@paper@type{letterpaper}% +\DeclareOption{letterpaper}{\def\@paper@type{letterpaper}}% +\define@key{ov}{letterpaper}[true]{\iffixq{#1}{\def\@paper@type{letterpaper}}}% +\DeclareOption{legalpaper}{\def\@paper@type{legalpaper}} +\define@key{ov}{legalpaper}[true]{\iffixq{#1}{\def\@paper@type{legalpaper}}}% +\DeclareOption{a4paper}{\def\@paper@type{a4paper}} +\define@key{ov}{a4paper}[true]{\iffixq{#1}{\def\@paper@type{a4paper}}}% +\DeclareOption{a3paper}{\def\@paper@type{a3paper}} +\define@key{ov}{a3paper}[true]{\iffixq{#1}{\def\@paper@type{a3paper}}}% +\setkeys{ov}{textwidthsize=-1pt,textheightsize=-1pt,bottommarginskip=5pt,% headermarginskip=0pt,rightmarginsize=72pt,leftmarginsize=72pt,bottommarginskipbelow=5pt,% leftmargintopdist=-1pt,addrtoskipafter=18pt,unprright=-1pt,labsize=\normalsize,% -leftmarginskipleft=10pt,leftmarginskipright=10pt,dateskipbefore=0pt,% -dateskipafter=0pt,addrfromskipafter=0pt,addrfromskipbefore=0pt,% -greettoskipafter=0pt,sigskipbefore=12pt,sigskipafter=12pt,sigsize=72pt,% +leftmarginskipleft=10pt,leftmarginskipright=10pt,dateskipbefore=20pt,% +dateskipafter=36pt,addrfromskipafter=36pt,addrfromskipbefore=0pt,% +greettoskipafter=18pt,sigskipbefore=12pt,sigskipafter=12pt,sigsize=72pt,% postsigskipafter=10pt,memoskipafter=15pt,memoskipbefore=35pt,unprtop=-1pt,unprbottom=-1pt,% unprleft=-1pt}% % \end{macrocode}% % \end{macro} -% % \subsection{Executing Options} % Here we execute the default options to initialize certain variables. % \begin{macrocode} @@ -3211,7 +3039,6 @@ unprleft=-1pt}% %<*setdim> \def\ifta{0}\def\iftb{0}% \def\txa#1{\ifthenelse{\equal{\ifta}{1}}{\typeout{#1}}{}}%% -% Set text margin parameters \def\settext#1#2#3#4#5{% \txa{\string\textheight: #1}\txa{\string\textwidth: #2}% \global\setlength{\textheight}{#1}% @@ -3221,7 +3048,6 @@ unprleft=-1pt}% \global\setlength{\columnsep}{#5}% \@change@text% } -% Set text margin parameters locally, not globally \def\lsettext#1#2#3#4#5{% \txa{\string\textheight: #1}\txa{\string\textwidth: #2}% \setlength{\textheight}{#1}% @@ -3231,7 +3057,6 @@ unprleft=-1pt}% \setlength{\columnsep}{#5}% \@lchange@text% } -% Change text margin parameters \def\@change@text{% \global\setlength{\@colht}{\textheight}% \txa{\string\@colht:\the\@colht}% @@ -3245,7 +3070,6 @@ unprleft=-1pt}% \global\setlength{\hsize}{\columnwidth}% \global\setlength{\linewidth}{\hsize}% }% -% Change text margin parameters locally, not globally \def\@lchange@text{% \setlength{\@colht}{\textheight}% \txa{\string\@colht:\the\@colht}% @@ -3259,7 +3083,6 @@ unprleft=-1pt}% \setlength{\hsize}{\columnwidth}% \setlength{\linewidth}{\hsize}% }% -% Retain dimensions for change at a point, and later restoration \def\retdims{% \showdim{Setpage A}% \txa{In setpage: \npind}% @@ -3273,7 +3096,6 @@ unprleft=-1pt}% \global\setlength{\@xdh}{\headsep}% \global\setlength{\@xdi}{\footskip}% } -% Restore dimensions from change at a point \def\rstdims{% \showdim{Setpage A}% \txa{In setpage: \npind}% @@ -3288,7 +3110,6 @@ unprleft=-1pt}% \global\setlength{\footskip}{\@xdi}% \@change@text% } -% Set all dimensions \def\setpage#1#2#3#4#5#6#7#8#9{% \showdim{Setpage A}% \txa{In setpage: \npind}% @@ -3437,7 +3258,8 @@ unprleft=-1pt}% % \end{enumerate} % \begin{macrocode} \newcommand{\Prnt@Chk}[7]{% - \ifthenelse{\boolean{#1}}{\ifempty{#6}{}{\vspace*{-2\parskip}\vspace*{#6}}}{}% + \ifthenelse{\boolean{#1}}{\ifempty{#6}{}{% + \vspace*{-2\parskip}\vspace*{#6}}}{}% \ifthenelse{\boolean{#1}}% {\ifthenelse{\boolean{#2}}{\begin{flushleft}{#4}\end{flushleft}}% {\ifthenelse{\boolean{#3}}% @@ -3555,8 +3377,8 @@ unprleft=-1pt}% \begin{flushleft}% \rule{\textwidth}{1pt} \par \noindent% \centerline{\LARGE \@pr@release \strut} \par\noindent% -\rule{\textwidth}{1pt} \par \noindent% -\txa{After first block}% +\rule{\textwidth}{1pt} \par \noindent +\txa{After first block} \setlength{\tabcolsep}{0pt}% \begin{tabular}{l@{\hspace{1em}}l}% \textbf{\@contact@phr:} & \@name@fr \strut \\% @@ -3569,14 +3391,14 @@ unprleft=-1pt}% \textbf{Date:} & \@xdate% \end{tabular}% \end{flushleft}% -\txa{After endflushleft}% -\rule{\textwidth}{1pt} \par \noindent% -\centerline{\textbf{\Large \@pr@headline}} \par \noindent% -\rule{\textwidth}{1pt} \par \noindent% +\txa{After endflushleft} +\rule{\textwidth}{1pt} \par \noindent +\centerline{\textbf{\Large \@pr@headline}} \par \noindent +\rule{\textwidth}{1pt} \par \noindent \ifthenelse{\boolean{@space@d}}{\begin{doublespace}}{\begin{singlespace}}% -\ifthenelse{\boolean{@pr@by}}{\noindent \@pr@byline \\}{}% -\noindent% -\txa{end of pressbegin}% +\ifthenelse{\boolean{@pr@by}}{\noindent \@pr@byline \\}{} +\noindent +\txa{end of pressbegin} }% \InputIfFileExists{prsrls.tex}% {\typeout{Reading press release page setup from prsrls.tex}}% @@ -3598,10 +3420,10 @@ unprleft=-1pt}% % \end{enumerate} % % \begin{macrocode} -\txa{Next part}% +\txa{Next part} \newcommand*{\faxpage}{{% \def\ifta{0}\showdim{Before setpage inside faxpage}% -\lsetpage{\@fax@height}{\@fax@width}{1in}{0in}{.25in}{1in}{.75in}{.25in}{.25in}% +\lsetpage{722pt}{6.5in}{1in}{0in}{.25in}{1in}{.75in}{.25in}{.25in}% \showdim{After setpage}% {\def\ifta{0}\showdim{Before fax page setup A}% \setlength{\@utila}{\paperheight}\addtolength{\@utila}{-1in}% @@ -3707,7 +3529,7 @@ unprleft=-1pt}% % \end{macrocode} % \end{macro} % \subsection{Start of letter document} -% \begin{macro}{\@open@lfm} +% \begin{macro}{\openlfm} % Begin letter here. First check for left margin boxes; if one has been % specified, set it into the margin, and change the margin spacing % accordingly. After that, the left, right and center under-margin boxes @@ -3715,90 +3537,48 @@ unprleft=-1pt}% % Finally, we print (optionally) date, from-address, to-address and opening % salutation. % \begin{macrocode} -\newcommand{\@set@col}[4]{\ifthenelse{\boolean{#1}}{ -\settowidth{\@utile}{\usebox{#2}} -\ifthenelse{\lengthtest{\@utile>\@utila}}{\setlength{\@utila}{\@utile}}{} -\settowidth{\@utile}{\usebox{#4}} -\ifthenelse{\lengthtest{\@utile>\@utilb}}{\setlength{\@utilb}{\@utile}}{} -}{}}% -\newcommand{\@set@box}[6]{% -\setboolean{@ztilb}{true}% -\ifthenelse{\swtch=1}{% -\setboolean{@ztila}{true}% -\ifthenelse{\boolean{@ztila}}{\ifthenelse{#1=1}% -{\renewcommand{#1}{a}\setboolean{@ztila}{false}}{}}{}% -\ifthenelse{\boolean{@ztila}}{\ifthenelse{#1=2}% -{\renewcommand{#1}{b}\setboolean{@ztila}{false}}{}}{}% -\ifthenelse{\boolean{@ztila}}{\ifthenelse{#1=3}% -{\renewcommand{#1}{c}\setboolean{@ztila}{false}}{}}{}% -\ifthenelse{\boolean{@ztila}}{\ifthenelse{#1=4}% -{\renewcommand{#1}{d}\setboolean{@ztila}{false}}{}}{}% -\ifthenelse{\boolean{@ztila}}{\ifthenelse{#1=5}% -{\renewcommand{#1}{e}\setboolean{@ztila}{false}}{}}{}% -\ifthenelse{\boolean{@ztila}}{\ifthenelse{#1=6}% -{\renewcommand{#1}{f}\setboolean{@ztila}{false}}{}}{}% -\ifthenelse{\boolean{@ztila}}{\ifthenelse{#1=7}% -{\renewcommand{#1}{g}\setboolean{@ztila}{false}}{}}{}% -\ifthenelse{\boolean{@ztila}}{\ifthenelse{#1=8}% -{\renewcommand{#1}{h}\setboolean{@ztila}{false}}{}}{}% -\ifthenelse{\boolean{@ztila}}% -{\typeout{Row index for Special #4 incorrect - print cancelled}% -\setboolean{@ztilb}{false}}{}\setboolean{@ztila}{true}% -\ifthenelse{\boolean{@ztila}}{\ifthenelse{#2=1}% -{\renewcommand{#2}{a}\setboolean{@ztila}{false}}{}}{}% -\ifthenelse{\boolean{@ztila}}{\ifthenelse{#2=2}% -{\renewcommand{#2}{b}\setboolean{@ztila}{false}}{}}{}% -\ifthenelse{\boolean{@ztila}}{\ifthenelse{#2=3}% -{\renewcommand{#2}{c}\setboolean{@ztila}{false}}{}}{}% -\ifthenelse{\boolean{@ztila}}% -{\typeout{Column index for Special #4 incorrect - print cancelled}% -\setboolean{@ztilb}{false}}{}}{}% -\ifthenelse{\boolean{@ztilb}}{\sbox{\csname @hblk@#1#2\endcsname}{\usebox{#3}}% -\setboolean{@hblk@#1}{true}% -\addtolength{\csname @hblk@#1@bef\endcsname}{#5}% -\addtolength{\csname @hblk@#1@aft\endcsname}{#6}}{}% -}% \newcommand{\ifempty}[3]{\ifthenelse{\equal{#1}{}}{#2}{#3}}% \newcommand{\ifpempty}[3]{\ifthenelse{\equal{\protect#1}{}}{#2}{#3}}% +\newcommand{\@prnt@sec}[1]{% Actual printing of addresses here +\ifthenelse{#1=\@intd@pos}% +{\Prnt@Chk{@dt@p}{@dt@l}{@dt@c}{\@xdate}{}{\@dt@sk@b}{\@dt@sk@a}}{}% +\ifthenelse{#1=\@intf@pos}% +{\Prnt@Chk{@addr@fr@p}{@addr@fr@l}{@no@cen}% +{\usebox{\b@addr@fr}}{}{\@addr@fr@sk@b}{\@addr@fr@sk@a}}{}% +\ifthenelse{#1=\@intt@pos}% +{\Prnt@Chk{@addr@to@p}{@addr@to@l}{@no@cen}% +{\usebox{\b@addr@to}}{}{\@addr@to@sk@b}{\@addr@to@sk@a}}{}% +}% % \end{macrocode} % This is the actual section for openlfm. % \begin{macrocode} -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\def\@open@lfm{% +\newcommand*{\openlfm}{% +\ifthenelse{\boolean{@use@water}} +{\ClearShipoutPicture +\AddToShipoutPicture{\includegraphics[natheight=11in,natwidth=8.5in]{\@water@page}} +}{} \def\ifta{0}% -\txa{Start of the @open@lfm}% \ifthenelse{\boolean{@marg@Ruse}}% Here we set up right-side marginal notes {\setlength{\@utile}{-\@Hgt@Head+\@marg@rt@tp@d}% Adjust column top to leftmargintopdist -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Set margin par stuff printed in margin \normalmarginpar% -\marginpar{\vspace*{\the\@utile}\hspace*{\@marg@rt@l}\hspace*{-\marginparsep}\@Rmarg}}{}% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Print in the left margin? -\ifthenelse{\boolean{@marg@Luse}}{% Here we set up left-side marginal notes -\setlength{\@utile}{-\@Hgt@Head+\@marg@lt@tp@d}% Adjust column top to leftmargintopdist -\reversemarginpar\txa{Left margin}% Switch margin printing to other side -\marginpar{\vspace*{\the\@utile}\hspace*{\@marg@lt@l}\@Lmarg}}{}% -\settoheight{\@utild}{Test testy}% -\setlength{\@utile}{\headrulewidth}\addtolength{\@utile}{-3\@utild} -\vspace*{\@utile}% +\marginpar{\vspace*{\the\@utile} \hspace*{\@marg@rt@l}\hspace*{-\marginparsep} \@Rmarg}}{} +\ifthenelse{\boolean{@marg@Luse}}% Here we set up left-side marginal notes +{\setlength{\@utile}{-\@Hgt@Head+\@marg@lt@tp@d}% Adjust column top to leftmargintopdist +\reversemarginpar\txa{Left margin}% +\marginpar{\vspace*{\the\@utile} \hspace*{\@marg@lt@l} \@Lmarg}}{}% +\ifpempty{\@LUheader}{}{\@LUheader \hfill}% +\ifpempty{\@CUheader}{}{\hfill \@CUheader \hfill}% +\ifpempty{\@RUheader}{}{\hfill \@RUheader}% \txa{Running memosec}% Memo processing -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Print memo block? \ifthenelse{\boolean{@memo@bl}}% -{{\memosec}\setboolean{@dt@p}{false}\setboolean{@no@spc}{true}}{}%Memo -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Press release +{{\memosec}\setboolean{@dt@p}{false}% +\setboolean{@no@spc}{true}}% %Memo +{}% \txa{Running pressbegin}% \ifthenelse{\boolean{@pr@p}}% {\pressbegin% Press release processing -\txa{here we go again - out of pressbegin}% -\setboolean{@no@spc}{true}}{}% % Press Release -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Set the from info into a box - on first pass, measure - second pass, fit -% parbox to the measure -%A2% -\txa{Fixing boxes}% +\txa{here we go again - out of pressbegin} +\setboolean{@no@spc}{true}} {}% % Press Release \sbox{\b@addr@fr}{\noindent\setlength{\tabcolsep}{0pt}% Address-from into a box \raggedleft\begin{tabular}{l@{}}% \noindent\ignorespaces\@addr@fr% @@ -3808,228 +3588,45 @@ unprleft=-1pt}% \end{tabular}}% \settowidth{\@utilc}{\usebox{\b@addr@fr}}% \sbox{\b@addr@fr}{\noindent\setlength{\tabcolsep}{0pt}% -\parbox[t]{\@utilc}{\noindent\setlength{\tabcolsep}{0pt}% +\parbox[t]{\@utilc}{\noindent% +\begin{tabular}{l@{}}% \ignorespaces\@addr@fr% \ifthenelse{\boolean{@addr@fr@t}}{\\ \@phn@phr: \@phn@fr}{}% \ifthenelse{\boolean{@addr@fr@f}}{\\ \@fax@phr: \@fax@fr}{}% \ifthenelse{\boolean{@addr@fr@e}}{\\ \@email@phr: \@email@fr}{}% -}}% -\txa{Done with box}% -%B1% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Set the to info into a box - on first pass, measure - second pass, fit -% parbox to the measure -\sbox{\b@addr@to}{\noindent\setlength{\tabcolsep}{0pt}% Address-from into a box +\end{tabular}}}% +\sbox{\b@addr@to}{\noindent\setlength{\tabcolsep}{0pt}%Address-to into a box \raggedleft\begin{tabular}{l@{}}% -\noindent\ignorespaces\@name@to\strut\\\@addr@to% +\noindent\ignorespaces\@name@to \strut \\ \@addr@to% \ifthenelse{\boolean{@addr@to@t}}{\\ \@phn@phr: \@phn@to}{}% \ifthenelse{\boolean{@addr@to@f}}{\\ \@fax@phr: \@fax@to}{}% \ifthenelse{\boolean{@addr@to@e}}{\\ \@email@phr: \@email@to}{}% \end{tabular}}% -\settowidth{\@utilc}{\usebox{\b@addr@to}}% +\settowidth{\@utild}{\usebox{\b@addr@to}}% \sbox{\b@addr@to}{\noindent\setlength{\tabcolsep}{0pt}% -\parbox[t]{\@utilc}{\noindent\setlength{\tabcolsep}{0pt}% -\noindent\ignorespaces\@name@to\strut\\\@addr@to% +\parbox[t]{\@utild}{\noindent% +\begin{tabular}{l@{}}% +\ignorespaces\@name@to \strut \\ \@addr@to% \ifthenelse{\boolean{@addr@to@t}}{\\ \@phn@phr: \@phn@to}{}% \ifthenelse{\boolean{@addr@to@f}}{\\ \@fax@phr: \@fax@to}{}% \ifthenelse{\boolean{@addr@to@e}}{\\ \@email@phr: \@email@to}{}% -}}% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Now print the three components of the address in the three possible positions -\ifthenelse{\boolean{@no@spc}}{}{\@center@stuff}% Meat of the routine -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\txa{End of @open@lfm}% -\noindent\par +\end{tabular}}}% +\ifthenelse{\boolean{@no@spc}}{}{% +\ifthenelse{\boolean{@s@b@s}}{\par\noindent{\usebox{\b@addr@to} \hfill \usebox{\b@addr@fr}}}{}% +\setcounter{@c@pos}{1} \@prnt@sec{\the@c@pos}% Print from and to addresses and date +\setcounter{@c@pos}{2} \@prnt@sec{\the@c@pos}% +\setcounter{@c@pos}{3} \@prnt@sec{\the@c@pos}% +\setboolean{@greet@l}{true}% +\ifthenelse{\boolean{@pt@regard}}{\@regard@phr: \@regard@line}{}% +\Prnt@Chk{@greet@p}{@greet@l}{@no@cen}% +{\par\@greet@to\par\nobreak}{}{}{\@greet@to@sk@a}% +}% +\txa{End of openlfm}% }% -\def\@center@stuff{\txa{centerstuff3}% -% Set up date -\sbox{\@xdateb}{\@xdate}% -% Set up side-by-side -\ifthenelse{\boolean{@s@b@s}}{\@d@pos{1}\@f@pos{2}\@t@pos{2} -\setboolean{@at@c}{false}\setboolean{@af@c}{false} -\setboolean{@at@l}{true}\setboolean{@af@l}{false}}{} -\txa{\string\@intd@pos:\@intd@pos} -\txa{\string\@intt@pos:\@intt@pos} -\txa{\string\@intf@pos:\@intf@pos} -% Set up the rows for printing of the date, from and to -\ifthenelse{\@intd@pos=1}{\def\@r@d{b}}{}% -\ifthenelse{\@intd@pos=2}{\def\@r@d{d}}{}% -\ifthenelse{\@intd@pos=3}{\def\@r@d{f}}{}% -\ifthenelse{\@intt@pos=1}{\def\@r@t{b}}{}% -\ifthenelse{\@intt@pos=2}{\def\@r@t{d}}{}% -\ifthenelse{\@intt@pos=3}{\def\@r@t{f}}{}% -\ifthenelse{\@intf@pos=1}{\def\@r@f{b}}{}% -\ifthenelse{\@intf@pos=2}{\def\@r@f{d}}{}% -\ifthenelse{\@intf@pos=3}{\def\@r@f{f}}{}% -% Set up the columns corresponding to the positions for header elements -\ifthenelse{\boolean{@af@l}}{\def\@c@f{a}}{% -\ifthenelse{\boolean{@af@c}}{\def\@c@f{b}}{\def\@c@f{c}}}% -\ifthenelse{\boolean{@at@l}}{\def\@c@t{a}}{% -\ifthenelse{\boolean{@at@c}}{\def\@c@t{b}}{\def\@c@t{c}}}% -\ifthenelse{\boolean{@dt@l}}{\def\@c@d{a}}{% -\ifthenelse{\boolean{@dt@c}}{\def\@c@d{b}}{\def\@c@d{c}}}% -% Set up the columns for each of the specials, if specials there are% -\txa{Here0}% -\def\swtch{1}% -\ifthenelse{\boolean{@use@spec@a}}% -{\sbox{\@sp@box}{\@spec@a}% -\@set@box{\@row@a}{\@col@a}{\@sp@box}{a}{\@sp@bef@a}{\@sp@aft@a}}{}% -\ifthenelse{\boolean{@use@spec@b}}% -{\sbox{\@sp@box}{\@spec@b}% -\@set@box{\@row@b}{\@col@b}{\@sp@box}{b}{\@sp@bef@b}{\@sp@aft@b}}{}% -\ifthenelse{\boolean{@use@spec@c}}% -{\sbox{\@sp@box}{\@spec@c}% -\@set@box{\@row@c}{\@col@c}{\@sp@box}{c}{\@sp@bef@c}{\@sp@aft@c}}{}% -\ifthenelse{\boolean{@use@spec@d}}% -{\sbox{\@sp@box}{\@spec@d}% -\@set@box{\@row@d}{\@col@d}{\@sp@box}{d}{\@sp@bef@d}{\@sp@aft@d}}{}% -\ifthenelse{\boolean{@use@spec@e}}% -{\sbox{\@sp@box}{\@spec@e}% -\@set@box{\@row@e}{\@col@e}{\@sp@box}{e}{\@sp@bef@e}{\@sp@aft@e}}{}% -\ifthenelse{\boolean{@use@spec@f}}% -{\sbox{\@sp@box}{\@spec@f}% -\@set@box{\@row@f}{\@col@f}{\@sp@box}{f}{\@sp@bef@f}{\@sp@aft@f}}{}% -\ifthenelse{\boolean{@use@spec@g}}% -{\sbox{\@sp@box}{\@spec@g}% -\@set@box{\@row@g}{\@col@g}{\@sp@box}{g}{\@sp@bef@g}{\@sp@aft@g}}{}% -\ifthenelse{\boolean{@use@spec@h}}% -{\sbox{\@sp@box}{\@spec@h}% -\@set@box{\@row@h}{\@col@h}{\@sp@box}{h}{\@sp@bef@h}{\@sp@aft@h}}{}% -\def\swtch{2}% -\txa{HereA}% -% Set up the columns for each of the components% -\ifthenelse{\boolean{@af@p}}% -{\@set@box{\@r@t}{\@c@t}{\b@addr@to}{}{\@addr@to@sk@b}{\@addr@to@sk@a}}{}% -\ifthenelse{\boolean{@af@p}}% -{\@set@box{\@r@f}{\@c@f}{\b@addr@fr}{}{\@addr@fr@sk@b}{\@addr@fr@sk@a}}{}% -\ifthenelse{\boolean{@dt@p}}% -{\@set@box{\@r@d}{\@c@d}{\@xdateb}{}{\@dt@sk@b}{\@dt@sk@a}}{}% -\txa{HereB}% -% Measure the columns for specification -\setlength{\@utila}{0pt}% -\setlength{\@utilb}{0pt}% -\@set@col{@hblk@a}{\@hblk@aa}{\@hblk@ab}{\@hblk@ac}% -\@set@col{@hblk@b}{\@hblk@ba}{\@hblk@bb}{\@hblk@bc}% -\@set@col{@hblk@c}{\@hblk@ca}{\@hblk@cb}{\@hblk@cc}% -\@set@col{@hblk@d}{\@hblk@da}{\@hblk@db}{\@hblk@dc}% -\@set@col{@hblk@e}{\@hblk@ea}{\@hblk@eb}{\@hblk@ec}% -\@set@col{@hblk@f}{\@hblk@fa}{\@hblk@fb}{\@hblk@fc}% -\@set@col{@hblk@g}{\@hblk@ga}{\@hblk@gb}{\@hblk@gc}% -% Define the lengths for the tabular - add just a tiny bit to each column -\setlength{\@utilc}{1pt}% -\addtolength{\@utila}{5\@utilc}% -\addtolength{\@utilb}{5\@utilc}% -\setlength{\@utild}{\textwidth-\@utila-\@utilb-10\@utilc}% -\txa{Lengths: \the\@utila -- \the\@utilb -- \the\@utilc -- \the\@utild} -%VALUE D -{\setlength{\tabcolsep}{0pt}\setlength{\arraycolsep}{0pt}% -\setboolean{@prnt@frm}{false}% -\ifthenelse{\boolean{@prnt@frm}}% -{\def\@tab@set{|p{\@utila}|p{\@utild}|p{\@utilb}|}\def\@tab@line{\hline}}% -{\def\@tab@set{p{\@utila}p{\@utild}p{\@utilb}}\def\@tab@line{}}% -%\rule{\textwidth}{.5pt}\par\nointerlineskip -\txa{regarding}% -\ifthenelse{\boolean{@pt@regard}}% -{\setboolean{@hblk@h}{true}\sbox{\@hblk@ha}{\@regard@phr:\@regard@line}% -\setlength{\@hblk@h@bef}{0pt}\setlength{\@hblk@h@aft}{0pt}}% -{\setboolean{@hblk@h}{false}}% -\txa{greeting}% -\ifthenelse{\boolean{@greet@p}}% -{\setboolean{@hblk@i}{true}\sbox{\@hblk@ia}{\@greet@to}% -\setlength{\@hblk@i@bef}{\@greet@to@sk@a}\setlength{\@hblk@i@aft}{\@greet@to@sk@a}}% -{\setboolean{@hblk@i}{false}}% -%Here finally print the header section -% Very ungainly here - multicolumn does not like the ifthenelse construction -\txa{Dimens: baselineskip:\the\baselineskip,@marg@tp@b:\the\@marg@tp@b} -{\setlength{\baselineskip}{0pt} -\settoheight{\@utile}{Test Testy grinch} -\renewcommand{\arraystretch}{0} -\txa{table start} -\txa{extrarulesep:\the\extrarulesep} -\setlength{\extrarulesep}{0pt} -\begin{flushleft}% -\begin{tabular}{\@tab@set}\@tab@line -\@prnt@boxa{@hblk@a}{\@hblk@a@bef}{1}{\@hblk@aa}{\@hblk@ab}{\@hblk@ac}% -{\@hblk@a@aft}{\@tab@line}{A}% -\@prnt@boxa{@hblk@b}{\@hblk@b@bef}{2}{\@hblk@ba}{\@hblk@bb}{\@hblk@bc}% -{\@hblk@b@aft}{\@tab@line}{B}% -\@prnt@boxa{@hblk@c}{\@hblk@c@bef}{3}{\@hblk@ca}{\@hblk@cb}{\@hblk@cc}% -{\@hblk@c@aft}{\@tab@line}{C}% -\@prnt@boxa{@hblk@d}{\@hblk@d@bef}{4}{\@hblk@da}{\@hblk@db}{\@hblk@dc}% -{\@hblk@d@aft}{\@tab@line}{D}% -\@prnt@boxa{@hblk@e}{\@hblk@e@bef}{5}{\@hblk@ea}{\@hblk@eb}{\@hblk@ec}% -{\@hblk@e@aft}{\@tab@line}{E}% -\@prnt@boxa{@hblk@f}{\@hblk@f@bef}{6}{\@hblk@fa}{\@hblk@fb}{\@hblk@fc}% -{\@hblk@f@aft}{\@tab@line}{F}% -\@prnt@boxa{@hblk@g}{\@hblk@g@bef}{7}{\@hblk@ga}{\@hblk@gb}{\@hblk@gc}% -{\@hblk@g@aft}{\@tab@line}{G}% -%\@prnt@mboxa{@hblk@h}{\@hblk@h@bef}{8}{\@hblk@ha}{\@hblk@hb}{\@hblk@hc}% -%{\@hblk@h@aft}{\@tab@line}{H}% -\end{tabular}% -\end{flushleft}% -\txa{Box a:Before-\the\@hblk@a@bef, After-\the\@hblk@a@aft}% -\settoheight{\@utila}{\usebox{\@hblk@aa}}% -\settoheight{\@utilb}{\usebox{\@hblk@ab}}% -\settoheight{\@utilc}{\usebox{\@hblk@ac}}% -\txa{Heights: \the\@utila, \the\@utilb, \the\@utilc}% -\txa{Box b:Before-\the\@hblk@b@bef, After-\the\@hblk@b@aft}% -\settoheight{\@utila}{\usebox{\@hblk@ba}}% -\settoheight{\@utilb}{\usebox{\@hblk@bb}}% -\settoheight{\@utilc}{\usebox{\@hblk@bc}}% -\txa{Heights: \the\@utila, \the\@utilb, \the\@utilc}% -\txa{Box c:Before-\the\@hblk@c@bef, After-\the\@hblk@c@aft}% -\settoheight{\@utila}{\usebox{\@hblk@ca}}% -\settoheight{\@utilb}{\usebox{\@hblk@cb}}% -\settoheight{\@utilc}{\usebox{\@hblk@cc}}% -\txa{Heights: \the\@utila, \the\@utilb, \the\@utilc}% -\txa{Box d:Before-\the\@hblk@d@bef, After-\the\@hblk@d@aft}% -\settoheight{\@utila}{\usebox{\@hblk@da}}% -\settoheight{\@utilb}{\usebox{\@hblk@db}}% -\settoheight{\@utilc}{\usebox{\@hblk@dc}}% -\txa{Heights: \the\@utila, \the\@utilb, \the\@utilc}% -\txa{Box e:Before-\the\@hblk@e@bef, After-\the\@hblk@e@aft}% -\settoheight{\@utila}{\usebox{\@hblk@ea}}% -\settoheight{\@utilb}{\usebox{\@hblk@eb}}% -\settoheight{\@utilc}{\usebox{\@hblk@ec}}% -\txa{Heights: \the\@utila, \the\@utilb, \the\@utilc}% -\txa{Box f:Before-\the\@hblk@f@bef, After-\the\@hblk@f@aft}% -\settoheight{\@utila}{\usebox{\@hblk@fa}}% -\settoheight{\@utilb}{\usebox{\@hblk@fb}}% -\settoheight{\@utilc}{\usebox{\@hblk@fc}}% -\txa{Heights: \the\@utila, \the\@utilb, \the\@utilc}% -\txa{Box g:Before-\the\@hblk@g@bef, After-\the\@hblk@g@aft}% -\settoheight{\@utila}{\usebox{\@hblk@ga}}% -\settoheight{\@utilb}{\usebox{\@hblk@gb}}% -\settoheight{\@utilc}{\usebox{\@hblk@gc}}% -\txa{Heights: \the\@utila, \the\@utilb, \the\@utilc}% -\txa{table end} -\settowidth{\@utila}{\usebox{\@hblk@ha}}% -\settoheight{\@utilb}{\usebox{\@hblk@ha}}% -\txa{Greeting: \the\@utila, \the\@utilb} -\txa{Box h:Before-\the\@hblk@h@bef, After-\the\@hblk@h@aft}% -\noindent\par\ifthenelse{\boolean{@hblk@h}}% -{\parbox[b][\@hblk@h@bef+\@hblk@h@aft][b]{\@utila} -{\strut\raisebox{\@hblk@h@aft}{\usebox{\@hblk@ha}}}}{}% -\settowidth{\@utila}{\usebox{\@hblk@ia}}% -\settoheight{\@utilb}{\usebox{\@hblk@ia}}% -\txa{Greeting: \the\@utila, \the\@utilb} -\txa{Box i:Before-\the\@hblk@i@bef, After-\the\@hblk@i@aft}% -\noindent\par\ifthenelse{\boolean{@hblk@i}}% -{\parbox[b][\@hblk@i@bef+\@hblk@i@aft][b]{\@utila} -{\strut\raisebox{\@hblk@i@aft}{\usebox{\@hblk@ia}}}}{}% -\txa{end of centerstuff}% -}}}% -\newcommand{\@prnt@boxa}[9]{% -\ifthenelse{\boolean{#1}}{ -\strut\rule{0pt}{#2+\@utile}\usebox{#4}&\usebox{#5}&\usebox{#6}\\[#7]#8}{}}% -\newcommand{\@prnt@mboxa}[9]{% -\ifthenelse{\boolean{#1}}{ -\strut\rule{0pt}{#2+\@utile}\multicolumn{3}{l}{\usebox{#4}}\\[#7]#8}{}}% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % \end{macrocode} % \end{macro} % \subsection{Close of document section} -% \begin{macro}{@clos@lfm} +% \begin{macro}{closlfm} % In this section, the letter is terminated. Several things happen here: % \begin{enumerate} % \item If signature block is to be printed, it is printed @@ -4044,24 +3641,38 @@ unprleft=-1pt}% % \end{enumerate} % \begin{macrocode} \def\@fix@one@box{% -\sbox{\@sig@box@b}{\begin{tabular}{l}% +\settowidth{\@utila}{\setlength{\tabcolsep}{0pt}% +\begin{tabular}{l}% \ifthenelse{\boolean{@use@close}}{{\@closeline}\\}{}% +\vspace*{\@cls@sk@a} \\% \ifthenelse{\boolean{@use@sig}}% {{\@sig@fr}\\}{\parbox[t][\the\@sig@sp][t]{.1pt}{\vspace*{\@sig@sp}}\\}% \ifthenelse{\boolean{@use@sig@nm}}{\@sig@nm\\}{\@name@fr\\}% -\end{tabular}}}% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\def\@close@lfm{\def\ifta{0}\txa{In @close@lfm}% +\end{tabular}% +}% +\sbox{\@sig@box@b} {% +\setlength{\tabcolsep}{0pt}\noindent% +\begin{tabular}{p{\the\@utila}}% +\ifthenelse{\boolean{@use@close}}{{\@closeline}\\}{}% +\vspace*{\@cls@sk@a} \\% +\ifthenelse{\boolean{@use@sig}}% +{{\@sig@fr}\\}{\parbox[t][\the\@sig@sp][t]{.1pt}{\vspace*{\@sig@sp}}\\}% +\ifthenelse{\boolean{@use@sig@nm}}{\@sig@nm\\}{\@name@fr\\}% +\end{tabular}% +}% +}% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\def\closlfm{\def\ifta{0}\txa{In closlfm}% \setlength{\@utila}{\@sig@sk@b}\addtolength{\@utila}{-1.5\baselineskip}% \vspace*{\the\@utila}\noindent\setlength{\tabcolsep}{0pt}% \ifthenelse{\boolean{@pr@p}}% {\medskip\begin{center}\@PRend@phr\end{center}% - \markboth{}{} +\markboth{}{}% }% markboth mechanism resets center footer {}% note require {} to finish ifthenelse %%%%% \ifthenelse{\boolean{@mult@sig}}% -{\begin{flushleft}% +{% \ifthenelse{\equal{\the@sig@tot}{1}}{\def\@sig@tab{l}}{}% Set multiple columns \ifthenelse{\equal{\the@sig@tot}{2}}{\def\@sig@tab{ll}}{}% \ifthenelse{\equal{\the@sig@tot}{3}}{\def\@sig@tab{lll}}{}% @@ -4094,7 +3705,7 @@ unprleft=-1pt}% \@for\@one@sig:=\@sig@list\do% Loop thru signature abbreviations {\setboolean{@use@sig}{false}\setboolean{@use@close}{false}% \setboolean{@use@sig@nm}{false}% -\txa{\the\@utile} +\txa{\the\@utile}% \ifthenelse{\equal{\the@lab@cnt@col}{0}}{~\vspace*{\the\@utile}\\\noindent}{}% \expandafter\csname sig\@one@sig\endcsname% \ignorespaces \@fix@one@box\settoheight{\@utilc}{\usebox{\@sig@box@b}}% @@ -4104,13 +3715,15 @@ unprleft=-1pt}% \raisebox{-\the\@utilc/2}{\parbox[t]{\the\@utila}{\usebox{\@sig@box@b}}}% \addtocounter{@lab@cnt@col}{1}% \ifthenelse{\equal{\the@lab@cnt@col}{\the@sig@tot}}% -{\txa{else condition} +{\txa{else condition}% \setcounter{@lab@cnt@col}{0}\setlength{\@utile}{\@sig@sk@r}}{\hspace*{\the\@sig@sk@c}}}% -\vspace*{\the\@sig@sk@a}\end{flushleft}}% +\vspace*{\the\@sig@sk@a}% +}% {% Print normal signature -\@fix@one@box\settowidth{\@utila}{\usebox{\@sig@box@b}}% Set up box, measure +\@fix@one@box% \Prnt@Chk{@sig@p}{@sig@l}{@sig@c}% -{\parbox{\@utila}{\usebox{\@sig@box@b}}}{}{\@sig@sk@b}{\@sig@sk@a}}% +{\parbox{\@utila}{\usebox{\@sig@box@b}}}{}{\@cls@sk@b}{\@sig@sk@a}% +}% }% % \end{macrocode} % \end{macro} @@ -4125,7 +3738,7 @@ unprleft=-1pt}% \settowidth{\@utila}{{\small\normalfont #1: }}% \addtolength{\@utilb}{-\@utila}% \ifthenelse{\equal{#2}{#3}}{}{% -\vspace*{\the\@post@sig@sp@b} \hspace*{.01pt} \\ \noindent% +\vspace*{\the\@post@sig@sp@b} \hspace*{-.01pt} \\ \noindent% \parbox[t]{\textwidth}{\@hangfrom{{\small\normalfont #1: }}% \ignorespaces \parbox[t]{\@utilb}{{\small#2}}\strut}\par% \vspace*{\the\@post@sig@sp@a}% @@ -4380,11 +3993,11 @@ unprleft=-1pt}% % included in a letter. That way, it need not be entered separately into % each different letter. % -% \begin{macrocode}% -\newif \if@read@one \@read@onetrue% -\def\@ltr@info@name{letrinfo.tex}% +% \begin{macrocode} +\newif \if@read@one \@read@onetrue +\def\@ltr@info@name{letrinfo.tex} %\DeclareOption{InfoFileName}[1]{\renewcommand{\@ltr@info@name}{#1}} -\define@key{ov}{InfoFileName}{\def\@ltr@info@name{#1}}% +\define@key{ov}{InfoFileName}{\def\@ltr@info@name{#1}} \InputIfFileExists{\@ltr@info@name}% {\typeout{Reading default letter definitions from \@ltr@info@name}}% {\typeout{\@ltr@info@name\ not found. All letter definitions must be in newlfm.cls}}% @@ -4419,20 +4032,20 @@ unprleft=-1pt}% \DeclareRobustCommand*{\@env@label}[1]{#1\parbox[t][\@lab@bh][t]{\@lab@bw}% {{\@name@to \\ \@addr@to} \hfill}}% \DeclareRobustCommand*{\@env@oth}[2]{% -\txa{box height:\the\@lab@bh, box width:\the\@lab@bw, between: \the\tabcolsep}% +\txa{box height:\the\@lab@bh, box width:\the\@lab@bw, between: \the\tabcolsep} \parbox[t][\@lab@bh][t]{\@lab@bw}{\@lab@size \strut #1 \\ #2 \strut}}% -\DeclareRobustCommand*{\@env@row}[4]{\settowidth{\@utila}{\@hnfr@phr:}% -\setlength{\tabcolsep}{0pt}% -\fbox{\parbox[t][\@lab@bh][t]{\@lab@bw}{% -\@lab@size \begin{tabular}{ll}{\Large\@hnfr@phr:}&{\Large\@hnto@phr:}\\% -\parbox[t]{2.0in}{#3\\#4}&\parbox[t]{2.0in}{#1\\#2}% +\DeclareRobustCommand*{\@env@row}[4]{\settowidth{\@utila}{\@hnfr@phr:} +\setlength{\tabcolsep}{0pt} +\fbox{\parbox[t][\@lab@bh][t]{\@lab@bw}{ +\@lab@size \begin{tabular}{ll}{\Large\@hnfr@phr:}&{\Large\@hnto@phr:}\\ +\parbox[t]{2.0in}{#3\\#4}&\parbox[t]{2.0in}{#1\\#2} \end{tabular}\hfill}}}% \DeclareRobustCommand*{\@env@col}[4]{\parbox[t][\@lab@bh][t]{\@lab@bw}{% {\@lab@size{\Large\@hnfr@phr:}\\#3\\#4\\{\Large\@hnto@phr:}\\#1\\#2}}}% \DeclareRobustCommand*{\x@env@col}[4]{\parbox[t][\@lab@bh][t]{\@lab@bw}{% -{\@lab@size\begin{tabular}{p{.5in}p{3.25in}}{\Large\@hnfr@phr:}\\&\parbox[t]{3.25in}{#4}% +{\@lab@size\begin{tabular}{p{.5in}p{3.25in}}{\Large\@hnfr@phr:}\\&\parbox[t]{3.25in}{#4} \vspace*{10pt}\\{\Large\@hnto@phr:}\\&\parbox[t]{3.25in}{#2}\\\end{tabular}}}}% -\def\multletter#1{\@for\@addr@x:=#1\do{{\oneletter{\@addr@x}}}}% +\def\multletter#1{\@for\@addr@x:=#1\do{{\oneletter{\@addr@x}}}} \def\doletter#1{\setadrto{#1}\txa{ZA}% \begin{newlfm}\@ltr@body\end{newlfm}\gdef\npind{D}\newpage}% \def\oneletter#1{\txa{In oneletter}\setadrto{\csname adr#1\endcsname}\txa{ZB}\addrt{#1}% @@ -4458,12 +4071,12 @@ unprleft=-1pt}% \ifthenelse{\lengthtest{\@lab@th<12pt}}{\setlength{\@lab@th}{12.1pt}}{}% \ifthenelse{\boolean{@use@envlab}}{% \def\ifta{0}% - \setpage{\@stock@height}{\@stock@width}{-1in}{72pt}{0in}{-1in}{120pt}{0in}{20pt}% + \setpage{11in}{8.5in}{-1in}{72pt}{0in}{-1in}{120pt}{0in}{20pt}% \txa{use@envlab true}% }% {% \gdef\npind{A3}% - \setpage{\@lab@pl}{\@stock@width}{-1in}{\@lab@lm}{0in}{-1in}{\@lab@th}{0in}{20pt}% + \setpage{\@lab@pl}{8.5in}{-1in}{\@lab@lm}{0in}{-1in}{\@lab@th}{0in}{20pt}% \txa{use@envlab false}% \txa{headheight:\the\@lab@th}% }% @@ -4484,7 +4097,7 @@ unprleft=-1pt}% \setboolean{@do@any}{true}% \def\@onet{\csname @aadr@t\number\@nlfm@util\endcsname}% \def\@onef{\csname @aadr@f\number\@nlfm@util\endcsname}% - \txa{\string\@onet:\@onet -- \string\@onef:\@onef}% + \txa{\string\@onet:\@onet -- \string\@onef:\@onef} \protect\setadrto{\csname adr\@onet\endcsname}\txa{ZD}% \protect\setadrfr{\csname adr\@onef\endcsname}% \def\ifta{0}% @@ -4528,9 +4141,9 @@ unprleft=-1pt}% \txa{Out of big loop: \arabic{@lab@cnt@col}}% \def\ifta{0}% \global\@nlfm@uta=\value{@lab@cnt@row}% - \sbox{\@x@l}{\phantom{A}}% - \ifthenelse{\boolean{@env@close} \and \boolean{@do@any}}% - {\txa{\the@lab@cnt@col, \the@lab@cnt@row, \the@lab@tot@row}% + \sbox{\@x@l}{\phantom{A}} + \ifthenelse{\boolean{@env@close} \and \boolean{@do@any}} + {\txa{\the@lab@cnt@col, \the@lab@cnt@row, \the@lab@tot@row} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Finish off current row first %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -4539,29 +4152,29 @@ unprleft=-1pt}% {\@env@oth{\usebox{\@x@l}}{\usebox{\@x@l}}% \addtocounter{@lab@cnt@col}{1}% \ifthenelse{\the@lab@cnt@col<\the@lab@tot@col}{&}{}} \\% - \addtocounter{@lab@cnt@row}{1}% + \addtocounter{@lab@cnt@row}{1} }% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Add remaining rows, each with all columns %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \whiledo{\the@lab@cnt@row<\the@lab@tot@row}% - {\setcounter{@lab@cnt@col}{0}% + {\setcounter{@lab@cnt@col}{0} \whiledo{\the@lab@cnt@col<\the@lab@tot@col}% {\@env@oth{\usebox{\@x@l}}{\usebox{\@x@l}}% \addtocounter{@lab@cnt@col}{1}% - \ifthenelse{\the@lab@cnt@col<\the@lab@tot@col}{&}{\\}% - }% + \ifthenelse{\the@lab@cnt@col<\the@lab@tot@col}{&}{\\} + } \addtocounter{@lab@cnt@row}{1}% - \ifthenelse{\the@lab@cnt@row<\the@lab@tot@row}% - {}% - {\\ \end{tabular}\end{table} \newpage% - \showdim{At the end of the table}}% + \ifthenelse{\the@lab@cnt@row<\the@lab@tot@row} + {} + {\\ \end{tabular}\end{table} \newpage + \showdim{At the end of the table}} \setboolean{@env@close}{false}% - \setboolean{@env@open}{true}% + \setboolean{@env@open}{true} }% }% {}% - \setboolean{@use@envlab}{false}% + \setboolean{@use@envlab}{false} \end{newlfm}% \def\ifta{0}% }% @@ -4588,15 +4201,15 @@ unprleft=-1pt}% % \begin{macrocode} \newenvironment{newlfm}{% Start of fax environment, in fax class% \if@read@one \global\@read@onefalse \fi% - \def\ifta{0}\txa{Start of newlfm startup}% - \txa{nameto: \@name@to}% - \ifthenelse{\boolean{@over@all}}{\txa{overall: true}}{\txa{overall: false}}% - \ifthenelse{\boolean{@over@setto}}{\txa{oversetto: true}}{\txa{oversetto: false}}% - \txa{namefrom: \@name@fr}% - \ifthenelse{\boolean{@over@setfr}}{\txa{oversetfr: true}}{\txa{oversetfr: false}}% + \def\ifta{0}\txa{Start of newlfm startup} + \txa{nameto: \@name@to} + \ifthenelse{\boolean{@over@all}}{\txa{overall: true}}{\txa{overall: false}} + \ifthenelse{\boolean{@over@setto}}{\txa{oversetto: true}}{\txa{oversetto: false}} + \txa{namefrom: \@name@fr} + \ifthenelse{\boolean{@over@setfr}}{\txa{oversetfr: true}}{\txa{oversetfr: false}} \ifthenelse{\boolean{@over@all}}{% \faxblocka% - }{}% + }{} \ifthenelse{\boolean{@fax@RA}}% {\ifthenelse{\boolean{@fax@bla}}{\Rheader{\usebox{\fba}}}{}% \ifthenelse{\boolean{@fax@blb}}{\Rheader{\faxblockb}}{}}{}% @@ -4612,15 +4225,15 @@ unprleft=-1pt}% \setadrfr{\expandafter\csname adr\@adr@fr \endcsname}}{\txa{false}}% \ifthenelse{\boolean{@over@sigbl}}{\txa{True}% \expandafter\csname sig\@sig@blok \endcsname}{\txa{false}}% - \@set@em@up% - }{}% + \@set@em@up + }{} \txa{setting up ruh}% \def\ifta{0}% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - \txa{name@to:\@name@to}% - \ifthenelse{\boolean{@over@setto}}{\txa{oversetto:true}}{\txa{oversetto:false}}% - \txa{name@fr:\@name@fr}% - \ifthenelse{\boolean{@over@setfr}}{\txa{oversetfr:true}}{\txa{oversetfr:false}}% + \txa{name@to:\@name@to} + \ifthenelse{\boolean{@over@setto}}{\txa{oversetto:true}}{\txa{oversetto:false}} + \txa{name@fr:\@name@fr} + \ifthenelse{\boolean{@over@setfr}}{\txa{oversetfr:true}}{\txa{oversetfr:false}} \retdims% \ifthenelse{\boolean{@fax@hdr@pg}}% {{\txa{FAX Page Setup}% @@ -4636,46 +4249,38 @@ unprleft=-1pt}% }}{}% \rstdims% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - \def\ifta{0}\showdim{After fax page section closes}\gdef\npind{G}% + \def\ifta{0}\showdim{After fax page section closes}\gdef\npind{G} \if@twoside \ifodd\c@page% \else\thispagestyle{empty}\null\newpage\fi \fi% \c@page\@ne% \interlinepenalty=200 % smaller than the TeXbook value% \setlength{\headwidth}{\textwidth}% \txa{Before Rfooter}\ifthenelse{\boolean{@B@f}}% - {\Cfooter{} \Rfooter{} \Lfooter{}} {}% -% {\Cfooter{\phantom{\Cfooter}} \Rfooter{\phantom{\Rfooter}} \Lfooter{\phantom{\Lfooter}}} {}% + {\Cfooter{\phantom{\Cfooter}} \Rfooter{\phantom{\Rfooter}} \Lfooter{\phantom{\Lfooter}}} {}% \txa{Before Rheader}\ifthenelse{\boolean{@B@h}}% - {\Rheader{} \Lheader{} \Cheader{}} {}% -% {\Rheader{\phantom{\Rheader}} \Lheader{\phantom{\Lheader}} \Cheader{\phantom{\Cheader}}} {}% + {\Rheader{\phantom{\Rheader}} \Lheader{\phantom{\Lheader}} \Cheader{\phantom{\Cheader}}} {}% \txa{Before Lmargin}\ifthenelse{\boolean{@B@l}}% - {\ifempty{\@Lmarg}{}{\Lmargin{}}}{}% -% {\ifempty{\@Lmarg}{}{\Lmargin{\phantom{\Lmargin}}}}{}% + {\ifempty{\@Lmarg}{}{\Lmargin{\phantom{\Lmargin}}}}{}% \txa{Before Rmargin}\ifthenelse{\boolean{@B@r}}% - {\ifempty{\@Rmarg}{}{\Rmargin{}}}{}% -% {\ifempty{\@Rmarg}{}{\Rmargin{\phantom{\Rmargin}}}}{}% + {\ifempty{\@Rmarg}{}{\Rmargin{\phantom{\Rmargin}}}}{}% \txa{Before rfooter}\ifthenelse{\boolean{@b@f}}% - {\rfooter{} \lfooter{} \cfooter{}} {}% -% {\rfooter{\phantom{\rfooter}} \lfooter{\phantom{\lfooter}} \cfooter{\phantom{\cfooter}}} {}% + {\rfooter{\phantom{\rfooter}} \lfooter{\phantom{\lfooter}} \cfooter{\phantom{\cfooter}}} {}% \txa{Before rheader}\ifthenelse{\boolean{@b@h}}% - {\rheader{} \lheader{} \cheader{}} {}% -% {\rheader{\phantom{\rheader}} \lheader{\phantom{\lheader}} \cheader{\phantom{\cheader}}} {}% + {\rheader{\phantom{\rheader}} \lheader{\phantom{\lheader}} \cheader{\phantom{\cheader}}} {}% \txa{Before lmargin}\ifthenelse{\boolean{@b@l}}% - {\lmargin{}} {}% -% {\lmargin{\phantom{\lmargin}}} {}% + {\lmargin{\phantom{\lmargin}}} {}% \txa{Before rmargin}\ifthenelse{\boolean{@b@r}}% - {\rmargin{}} {}% -% {\rmargin{\phantom{\rmargin}}} {}% + {\rmargin{\phantom{\rmargin}}} {}% \setlength{\textwidth}{\paperwidth-\@marg@rt-\@marg@lt-1pt}% \txa{Before opening}% \txa{\string\@marg@rt: \the\@marg@rt, \string\@marg@rt: \the\@marg@rt}% \txa{\string\textwidth: \the\textwidth, \string\paperwidth: \the\paperwidth}% % \ifthenelse{\boolean{@over@all}}{% - \@open@lfm% + \openlfm% % }{} \def\ifta{0}% - \txa{nameto:\@name@to}% - \txa{namefr:\@name@fr}% + \txa{nameto:\@name@to} + \txa{namefr:\@name@fr} \txa{\string\@marg@rt: \the\@marg@rt, \string\@marg@rt: \the\@marg@rt}% \txa{\string\textwidth: \the\textwidth, \string\paperwidth: \the\paperwidth}% \txa{After opening}% @@ -4691,7 +4296,7 @@ unprleft=-1pt}% \txa{Count: \number\@nlfm@addr -- To: \@adr@to -- From: \@adr@fr} \expandafter\xdef\csname @aadr@t\number\@nlfm@addr\endcsname{\@adr@to}% \expandafter\xdef\csname @aadr@f\number\@nlfm@addr\endcsname{\@adr@fr}% - \txa{Count: \number\@nlfm@addr -- To: \@adr@to -- From: \@adr@fr}% + \txa{Count: \number\@nlfm@addr -- To: \@adr@to -- From: \@adr@fr} \txa{@aadr@t\number\@nlfm@addr: \csname @aadr@t\number\@nlfm@addr\endcsname}% \txa{To: \csname @aadr@t\number\@nlfm@addr\endcsname,\@adr@to}% }% @@ -4712,12 +4317,12 @@ unprleft=-1pt}% % code path does as well. % % \begin{macrocode} -{% Here we are at the processing of the close of the newlfm env - start +{% Here we are at the processing of the close of the newlfm env \def\ifta{0}\txa{At the start of the close of newlfm env}% - \ifthenelse{\boolean{@pr@p}}{\@close@lfm}{}% + \ifthenelse{\boolean{@pr@p}}{\closlfm}{}% \ifthenelse{\boolean{@sig@p}}% {\txa{Before closing}% - \ifthenelse{\boolean{@pr@p}}{}{\@close@lfm}% + \ifthenelse{\boolean{@pr@p}}{}{\closlfm}% \txa{After closing}% \showdim{Current Dimensions}% \@post@sig@bl{\@ps@phr}{\@ps@item}{---BLANK---}% @@ -4725,7 +4330,7 @@ unprleft=-1pt}% \@post@sig@bl{\@ppps@phr}{\@ppps@item}{---BLANK---}% \@post@sig@bl{\@encl@phr}{\@encl@item}{---BLANK---}% \@post@sig@bl{\@cc@phr}{\@cc@item}{---BLANK---}}{}% - \ifthenelse{\boolean{@sig@mp}}{% + \ifthenelse{\boolean{@sig@mp}}{ \@post@sig@bl{\@ps@phr}{\@ps@item}{---BLANK---}% \@post@sig@bl{\@pps@phr}{\@pps@item}{---BLANK---}% \@post@sig@bl{\@ppps@phr}{\@ppps@item}{---BLANK---}% @@ -4749,11 +4354,11 @@ unprleft=-1pt}% % % Only the press release uses that environment. % \begin{macrocode} -\ifthenelse{\boolean{@pr@p}}{% +\ifthenelse{\boolean{@pr@p}}{ \ifthenelse{\boolean{@space@d}}{\end{doublespace}}{\end{singlespace}}% }{}% -}% Here we are at the processing of the close of the newlfm env - end -\def\@make@big@env{% +}% +\def\@make@big@env{ \@nlfm@util=0% \def\ifta{0}% \txa{In @make@big@env}% @@ -4771,7 +4376,7 @@ unprleft=-1pt}% \newpage% \def\ifta{0}% \gdef\npind{A4}% - \setpage{\@stock@height}{\@stock@width}{1in}{1in}{0pt}{0in}{120in}{0in}{0in}% + \setpage{11in}{8.5in}{1in}{1in}{0pt}{0in}{120in}{0in}{0in}% \txa{Actually using the makeenvelope...}% \startlabels% \@capitalizeaddressfalse% @@ -4784,8 +4389,8 @@ unprleft=-1pt}% \repeat% \global\@nlfm@addr=0% \txa{Count at end: \number\@nlfm@addr}% -}% -\def\@clear@box{% +} +\def\@clear@box{ \Backgrd{} \backgrd{} \Lfooter{} \Cfooter{} \Rfooter{} \LOfooter{}% \COfooter{}\ROfooter{}\lfooter{} \cfooter{} \rfooter{} \Lheader{}% \Cheader{} \Rheader{} \LUheader{}\CUheader{}\RUheader{}\lheader{}% @@ -4800,7 +4405,8 @@ unprleft=-1pt}% \pagenumbering{arabic}% \raggedbottom% \providecommand{\@texttop}{}% -\DeclareRobustCommand*{\@texttop}{\ifnum\c@page=1\vskip \z@ plus.00006fil\relax\fi}% +\DeclareRobustCommand*{\@texttop} + {\ifnum\c@page=1\vskip \z@ plus.00006fil\relax\fi}% \onecolumn% \def\@set@em@up{% % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -4808,9 +4414,9 @@ unprleft=-1pt}% % Much of this is in contravention of the philosophy of newlfm - since % it displaces information that might have been placed into the blocks % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\txa{Real start}% +\txa{Real start} \ifthenelse{\boolean{@pr@p}}{% -\PhrMore{\thepage\ of \pageref{LastPage}}% +\PhrMore{\thepage\ of \pageref{LastPage}} \Cfooter{\@more@phr}\cfooter{\@more@phr}% }{}% % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -4821,9 +4427,9 @@ unprleft=-1pt}% % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % First, set the header and footer widths % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ifthenelse{\boolean{@hl}}{\def\headrulewidth{\the\@Hrw}}% +\ifthenelse{\boolean{@hl}}{\def\headrulewidth{\the\@Hrw}} {\setlength{\@Hrw}{0pt}\def\headrulewidth{0pt}}% -\ifthenelse{\boolean{@fl}}{\def\footrulewidth{\the\@Frw}}% +\ifthenelse{\boolean{@fl}}{\def\footrulewidth{\the\@Frw}} {\setlength{\@Frw}{0pt}\def\footrulewidth{0pt}}% % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Now, set the contents of the header and footer sections into boxes @@ -4977,20 +4583,6 @@ unprleft=-1pt}% \ifthenelse{\lengthtest{\@Hgt@foot<\@Min@Hgt@foot}}% {\setlength{\@Hgt@foot}{\@Min@Hgt@foot}}{}% % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Check the under boxes here -% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\setboolean{@ztila}{false} -\ifthenelse{\boolean{@LUh@use}}{\txa{zorth}\sbox{\@hblk@aa}{\@LUheader}% -\setboolean{@hblk@a}{true}\setboolean{@ztila}{true}}{}% -\ifthenelse{\boolean{@CUh@use}}{\txa{zorth}\sbox{\@hblk@ab}{\@CUheader}% -\setboolean{@hblk@a}{true}\setboolean{@ztila}{true}}{}% -\ifthenelse{\boolean{@RUh@use}}{\txa{zorth}\sbox{\@hblk@ac}{\@RUheader}% -\setboolean{@hblk@a}{true}\setboolean{@ztila}{true}}{}% -\ifthenelse{\boolean{@ztila}} -{\ifthenelse{\lengthtest{\@hblk@a@aft<\@marg@tp@b}} -{\setlength{\@hblk@a@aft}{\@marg@tp@b}}{} -\setlength{\@marg@tp@b}{0pt}}{}% -% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Set the printable length as the difference of all those others % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \ifthenelse{\lengthtest{\@marg@lt@tp@d<1pt}}% @@ -5109,8 +4701,6 @@ unprleft=-1pt}% \addtolength{\@utile}{\@utilb}% \txa{Left: \the\@utile}% \gdef\npind{A5}% -\txa{Plg:\the\@Plg,Pwd:\the\@Pwd,marg@rt:\the\@marg@rt,marg@lt:\the\@marg@lt} -\txa{marg@tp@a:\the\@marg@tp@a,Hgt@head:\the\@Hgt@head,marg@tp@b:\the\@marg@tp@b,Hgt@foot:\the\@Hgt@foot} \setpage{\@Plg}{\@Pwd}{\@marg@rt-1in}{\@marg@lt-1in}{10pt}% {\@marg@tp@a-1in}{\@Hgt@Head}{\@marg@tp@b}{\@Hgt@Foot}% \ifthenelse{\lengthtest{\@Hgt@head<10pt}}{\setlength{\@Hgt@head}{13pt}}{}% @@ -5139,7 +4729,7 @@ unprleft=-1pt}% \addtolength{\@utila}{-\@utile}% \txa{7. \the\@utila,\the\@utile} }{}}{}% -\ifthenelse{\boolean{@af@p}}{\txa{Fixing from address} +\ifthenelse{\boolean{@addr@fr@p}}{\txa{Fixing from address} \ifthenelse{\@intf@pos<\@intt@pos}{% \addtolength{\@utila}{-\@addr@fr@sk@b}% \addtolength{\@utila}{-\@addr@fr@sk@a}% @@ -5153,13 +4743,6 @@ unprleft=-1pt}% \settoheight{\@utile}{\usebox{\b@addr@fr}}% \addtolength{\@utila}{-\@utile}% \txa{8. \the\@utila,\the\@utile} -\sbox{\b@addr@fr}{\noindent\setlength{\tabcolsep}{0pt}% Address-from into a box -\raggedleft\begin{tabular}{l@{}}% -\noindent\ignorespaces\@addr@fr% -\ifthenelse{\boolean{@addr@fr@t}}{\\ \@phn@phr: \@phn@fr}{}% -\ifthenelse{\boolean{@addr@fr@f}}{\\ \@fax@phr: \@fax@fr}{}% -\ifthenelse{\boolean{@addr@fr@e}}{\\ \@email@phr: \@email@fr}{}% -\end{tabular}}% }{}}{}% \txa{9. \the\@utila} \setlength{\@utilb}{\@cello@l}% @@ -5317,7 +4900,7 @@ unprleft=-1pt}% \def\ifta{0}% \showdim{Before changeing dimensions}% \gdef\npind{A6}% -\setpage{\@stock@height}{\@stock@width}{-1in}{-1in}{0in}{-1in}{0in}{0in}{0in}% +\setpage{11in}{8.5in}{-1in}{-1in}{0in}{-1in}{0in}{0in}{0in}% \txa{Starting the call to makeenvfn}% \makeenvfn% \txa{After return from the call to makeenvfn}% diff --git a/Master/texmf-dist/source/latex/newlfm/newlfm.ins b/Master/texmf-dist/source/latex/newlfm/newlfm.ins index 9d3f1b078c4..f7a8f1788d8 100644 --- a/Master/texmf-dist/source/latex/newlfm/newlfm.ins +++ b/Master/texmf-dist/source/latex/newlfm/newlfm.ins @@ -1,55 +1,55 @@ -%% -%% This file will generate fast loadable files and documentation -%% driver files from the file `newlfm.cls' in this package when run through -%% LaTeX or TeX. -%% -%% Copyright 1998 Paul A. Thompson -%% -%% IMPORTANT NOTICE: -%% -%% You are not allowed to change this file. -%% -%% If you do change the file, you must change the name. -% -% ----------------------------------------------------------------- -%% -%% ---- Start of docstrip commands -%% -\input docstrip -\preamble -\endpreamble -\keepsilent -\askforoverwritefalse -\Msg{*** Generating newlfm class file ***} -\generate{\file{newlfm.cls}{\from{newlfm.dtx}{package}}} -\generate{\file{addrset.sty}{\from{newlfm.dtx}{addrset}}} -\generate{\file{setdim.sty}{\from{newlfm.dtx}{setdim}}} -\ifToplevel{ -\Msg{***********************************************************} -\Msg{*} -\Msg{* To finish the installation you have to move the following} -\Msg{* files into a directory searched by TeX:} -\Msg{*} -\Msg{* \space\space newlfm.cls} -\Msg{* \space\space addrset.sty} -\Msg{* \space\space setdim.sty} -\Msg{*} -\Msg{* This should be either the main install tree (if done automatically)} -\Msg{* or the local tree (if done by user separately).} -\Msg{*} -\Msg{* Prefered location: root/tex/latex/newlfm} -\Msg{*} -\Msg{* After moving the files to the location, register the new files using} -\Msg{* the installation configuration utility.} -\Msg{*} -\Msg{* To produce the documentation run the file `newlfm.dtx'} -\Msg{* through LaTeX.} -\Msg{*} -\Msg{* Happy TeXing!} -\Msg{***********************************************************} -} - -\endbatchfile - - - +%% +%% This file will generate fast loadable files and documentation +%% driver files from the file `newlfm.cls' in this package when run through +%% LaTeX or TeX. +%% +%% Copyright 1998 Paul A. Thompson +%% +%% IMPORTANT NOTICE: +%% +%% You are not allowed to change this file. +%% +%% If you do change the file, you must change the name. +% +% ----------------------------------------------------------------- +%% +%% ---- Start of docstrip commands +%% +\input docstrip +\preamble +\endpreamble +\keepsilent +\askforoverwritefalse +\Msg{*** Generating newlfm class file ***} +\generate{\file{newlfm.cls}{\from{newlfm.dtx}{package}}} +\generate{\file{addrset.sty}{\from{newlfm.dtx}{addrset}}} +\generate{\file{setdim.sty}{\from{newlfm.dtx}{setdim}}} +\ifToplevel{ +\Msg{***********************************************************} +\Msg{*} +\Msg{* To finish the installation you have to move the following} +\Msg{* files into a directory searched by TeX:} +\Msg{*} +\Msg{* \space\space newlfm.cls} +\Msg{* \space\space addrset.sty} +\Msg{* \space\space setdim.sty} +\Msg{*} +\Msg{* This should be either the main install tree (if done automatically)} +\Msg{* or the local tree (if done by user separately).} +\Msg{*} +\Msg{* Prefered location: root/tex/latex/newlfm} +\Msg{*} +\Msg{* After moving the files to the location, register the new files using} +\Msg{* the installation configuration utility.} +\Msg{*} +\Msg{* To produce the documentation run the file `newlfm.dtx'} +\Msg{* through LaTeX.} +\Msg{*} +\Msg{* Happy TeXing!} +\Msg{***********************************************************} +} + +\endbatchfile + + + -- cgit v1.2.3