diff options
Diffstat (limited to 'macros/lamstex/inputs/letter.st')
-rw-r--r-- | macros/lamstex/inputs/letter.st | 157 |
1 files changed, 157 insertions, 0 deletions
diff --git a/macros/lamstex/inputs/letter.st b/macros/lamstex/inputs/letter.st new file mode 100644 index 0000000000..dd26486539 --- /dev/null +++ b/macros/lamstex/inputs/letter.st @@ -0,0 +1,157 @@ +\catcode`\@=11 +\let\alloc@\alloc@@ + +\expandafter\let\csname HL@1\endcsname=\relax +\expandafter\let\csname hl@1\endcsname=\relax + +\let\tocfile=\undefined +\let\indexfile=\undefined +\let\indexproofing=\undefined +\let\idefine=\undefined +\let\iabbrev=\undefined +\def"{\Err@{\string" for index marking not used in this style}} +\let\title=\undefined +\let\endtitle=\undefined +\let\author=\undefined +\let\endauthor=\undefined +\let\affil=\undefined +\let\endaffil=\undefined +\let\maketitle=\undefined + +\r@ggedbottomtrue +\interlinepenalty=1000 +\hsize=6.25truein +\vsize=8.9truein +\parindent=0pt +\parskip=0pt + +\def\listbi@{\penalty50 \bigskip} + +\let\addressee@=\empty +\let\Date@=\empty +\let\Date@@=\empty +\nopagenumbers +\newif\ifheadline@ +\headline@true +\newif\ifNoHead@ +\def\noheading{\global\headline@false} +\def\NoHeadings{\global\NoHead@true} + +\headline={% + \ifheadline@ + \ifnum\pageno>\@ne + \tenrm\frenchspacing To \addressee@\hfil\Date@@\hfil Page \folio + \else\hfil\fi + \else\hfil\fi} + +\def\beginlinemode@{\endmode@ + \begingroup\obeylines\def\endmode@{\par\endgroup}} +\def\beginparmode@{\endmode@ + \begingroup\parskip\medskipamount\def\endmode@{\par\endgroup}} +\let\endmode@\par + +\newdimen\longindentation +\longindentation=4truein +\newbox\returnbox@ +\newbox\Returnbox@ +\newif\ifreturn@ + +\let\letter=\relax + +\def\return{\return@true\beginlinemode@\getreturnbox@} +{\obeylines% + \gdef\getreturnbox@% + {\global\setbox\returnbox@\vbox\bgroup\raggedright% + \leftskip\longindentation\everypar{\hangindent2em}% + \def\endmode@{\egroup\endgroup}}} + +\def\Return{\begingroup\obeylines\getReturnbox@} +{\obeylines% + \gdef\getReturnbox@% + {\global\setbox\Returnbox@\vbox\bgroup\raggedright% + \leftskip\longindentation\everypar{\hangindent2em}}} +\def\endReturn{\egroup\endgroup} + +\def\Signoff{\begingroup\obeylines\Signoff@} +{\obeylines% + \long\gdef\Signoff@#1\endSignoff{\gdef\signoff{#1}\endgroup}} + +\def\date#1{\def\Date@{\hbox to \hsize{\hskip\longindentation + \ignorespaces#1\unskip\hfil}}\def\Date@@{\ignorespaces#1\unskip}} + +\date\today + +\newbox\addressbox@ +\def\address{\beginlinemode@\getaddress@} +{\obeylines\gdef\getaddress@ #1 + #2 + {#1\gdef\addressee@{#2}% + \global\setbox\addressbox@\vbox to1truein\bgroup + \frenchspacing\raggedright% + \hsize\longindentation\everypar{\hangindent2em}#2 + \def\endmode@{\vfil\egroup\endgroup\makeheading@}}} + +\newif\iffoldlines@ +\def\foldlines{\global\foldlines@true} + +\def\makeheading@{\hrule height\z@\nobreak\vskip3truein + \iffoldlines@ + \hbox to \hsize{\hfil\rlap{\hskip40pt + \vrule\width.15truecm\height.4truept\depth\z@}} + \vskip-.4truept + \fi + \vskip-3truein + \nointerlineskip + \vbox to 1.5truein{\vskip0pt plus.1fil + \ifreturn@\box\returnbox@\else\copy\Returnbox@\fi + \vskip 0pt plus .2fil + \Date@ + \vskip 0pt plus .4fil} + \nointerlineskip + \vbox to 1truein{\vskip 0pt plus .3fil + \box\addressbox@ + \vskip 0pt plus .7fil} + \bigskip + \frenchspacing + \global\everypar{\global\everypar{\nonfrenchspacing\global\everypar{}}}} + +\def\salute{\beginparmode@} + +\def\closing{\beginlinemode@\getclosing@} +{\obeylines\gdef\getclosing@ #1 + #2 + {#1\nobreak\bigskip\leftskip\longindentation#2 + \nobreak\bigskip\bigskip\bigskip % + \def + {\endgraf\nobreak}}} + +\def\annotations + {\beginlinemode@\nobreak\bigskip\def\par{\endgraf\nobreak}\obeylines\par} + +\newif\iffirstpar@ + +\def\cc + {\beginlinemode@\firstpar@true\nobreak\bigskip\def\par{\endgraf\nobreak}% + \everypar{\iffirstpar@\global\firstpar@false\else + \hphantom{cc\colon@\space}\fi}% + \obeylines\par cc\colon@\space\ignorespaces} + +\def\encl + {\beginlinemode@\firstpar@true\nobreak\bigskip\def\par{\endgraf\nobreak}% + \everypar{\iffirstpar@\global\firstpar@false\else + \hphantom{encl\colon@\space}\fi}% + \obeylines\par encl\colon@\space\ignorespaces} + +\def\ps{\beginparmode@\nobreak + \interlinepenalty5000 \def\par{\endgraf\penalty5000 }} + +\def\endletter{\endmode@\par\vfill\break + \def\addressee@{}\ifNoHead@\else\global + \headline@true\fi\return@false\pageno\@ne} + +\def\alloc@#1#2#3#4#5{\global\advance\count1#1by\@ne + \ch@ck#1#4#2\allocationnumber=\count1#1 + \global#3#5=\allocationnumber + \wlog{\string#5=\string#2\the\allocationnumber}} + +\catcode`\@=\active |