summaryrefslogtreecommitdiff
path: root/macros/lamstex/inputs/letter.st
diff options
context:
space:
mode:
Diffstat (limited to 'macros/lamstex/inputs/letter.st')
-rw-r--r--macros/lamstex/inputs/letter.st157
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