\newcommand{\attletterversiondate}{1995/07/26} \NeedsTeXFormat{LaTeX2e} \ProvidesClass{attletter} [\attletterversiondate ATT letter] % % modeled after letter.cls 1994/12/18 with the following changes (by tla) % % 89-Jan-17 add \labelheight for height of mailing labels % default is 1in rather than 2in % 89-Jan-17 add \makehead to print at&t letterhead % 89-Jan-17 \ragged bottom has been added to \letter % 89-Jan-17 \opening has been modified to incorporate the % makehead stuff % 89-Jan-17 the textwidth and margins have been changed % 89-Jan-17 the default page style has been changed to headings % 89-Feb-08 added eaddress % 89-Mar-29 added facesignature % 90-Feb-25 preload tm.sty before so features defined there % can be used % 90-May-29 added FAX as optional letterhead item % 91-Jan-09 made attletter able to use authors fixing % made signature default to tm@authori % bug with dual def of location macro % 91-Jan-22 added macros for overriding str, city addr % 91-Mar-25 made fromaddr same size regardless of body size % 91-May-15 added a return addr label for each addr label % when \makelabels is called % % 95-Jul-?? (HWT) converted to Latex2e % 95-Oct-16 (Hobby) fixed textheight, compatibility mode % margins, and date in multipage letters % additions: % \DeclareOption*{\PassOptionsToClass{\CurrentOption}{tm}} \ProcessOptions \LoadClass{tm} \setlength\lineskip{1\p@} \setlength\normallineskip{1\p@} \renewcommand\baselinestretch{} \setlength\parskip{0.7em} \setlength\parindent{0\p@} \@lowpenalty 51 \@medpenalty 151 \@highpenalty 301 \setlength\headheight{12\p@} \setlength\headsep {45\p@} \setlength\footskip{25\p@} \if@compatibility \setlength\textwidth{6in} \setlength\textheight{7.5in} % was 8.7in \else % correct for inappropriate computation from tmsize*.clo \setlength\@tempdima{1.3in} \divide\@tempdima\baselineskip \@tempcnta=\@tempdima \addtolength\textheight{-\@tempcnta\baselineskip} \fi \if@compatibility \setlength{\oddsidemargin}{18pt} % was 53pt \setlength{\evensidemargin}{18pt} % was 53pt \setlength{\marginparwidth}{90pt} \else \setlength{\@tempdima}{\paperwidth} \addtolength{\@tempdima}{-2in} \addtolength{\@tempdima}{-\textwidth} \setlength\oddsidemargin {.5\@tempdima} \setlength\evensidemargin {\oddsidemargin} \setlength\marginparwidth {90\p@} \fi \setlength\marginparsep {11\p@} \setlength\marginparpush{5\p@} \setlength\topmargin{27pt} \setlength\footnotesep{12\p@} \setlength{\skip\footins}{10\p@ \@plus 2\p@ \@minus 4\p@} \if@twoside \def\ps@headings{% \let\@oddfoot\@empty\let\@evenfoot\@empty \def\@oddhead{\slshape\headtoname{} \ignorespaces\toname \hfil \@date \hfil \pagename{} \thepage}% \let\@evenhead\@oddhead} \else \def\ps@headings{% \let\@oddfoot\@empty \def\@oddhead{\slshape\headtoname{} \ignorespaces\toname \hfil \@date \hfil \pagename{} \thepage}} \fi \def\ps@empty{% \let\@oddfoot\@empty\let\@oddhead\@empty \let\@evenfoot\@empty\let\@evenhead\@empty} \def\ps@firstpage{% \let\@oddhead\@empty \def\@oddfoot{\raisebox{-45\p@}[\z@]{% \hbox to\textwidth{\hspace*{100\p@}% \ifcase \@ptsize\relax \normalsize \or \small \or \footnotesize \fi \fromlocation \hfill \telephonenum}}\hss}} \def\ps@plain{% \let\@oddhead\@empty \def\@oddfoot{\rmfamily\hfil\thepage\hfil}% \def\@evenfoot{\rmfamily\hfil\thepage\hfil}} \newcommand*{\name}[1]{\def\fromname{#1}} \newcommand*{\signature}[1]{\def\fromsig{#1}} \newcommand*{\address}[1]{\def\fromaddress{#1}} \renewcommand*{\location}[1]{\def\fromlocation{#1}} \newcommand*{\telephone}[1]{\def\telephonenum{#1}} \name{} \signature{} \address{} \location{} \telephone{} \newcommand*{\makelabels}{% \AtBeginDocument{% \let\@startlabels\startlabels \let\@mlabel\mlabel \if@filesw \immediate\write\@mainaux{\string\@startlabels}\fi}% \AtEndDocument{% \if@filesw\immediate\write\@mainaux{\string\clearpage}\fi}} \@onlypreamble\makelabels \newenvironment{letter}[1] {\newpage \if@twoside \ifodd\c@page \else\thispagestyle{empty} \hbox{}\newpage\fi \fi \c@page\@ne \interlinepenalty=200 % smaller than the TeXbook value \@processto{\leavevmode\ignorespaces #1}} {\stopletter\@@par\pagebreak\@@par \if@filesw \begingroup \let\\=\relax \let\protect\@unexpandable@protect \immediate\write\@auxout{% \string\@mlabel{\tm@returnaddr}{\toname\\\toaddress}}% \endgroup \fi} \long\def\@processto#1{\@xproc #1\\@@@\ifx\toaddress\@empty \else \@yproc #1@@@\fi} \long\def\@xproc #1\\#2@@@{\def\toname{#1}\def\toaddress{#2}} \long\def\@yproc #1\\#2@@@{\def\toaddress{#2}} \newcommand*{\stopbreaks}{\interlinepenalty \@M \def\par{\@@par\nobreak}\let\\=\@nobreakcr \let\vspace\@nobreakvspace} \def\@nobreakvspace{\@ifstar{\@nobreakvspacex}{\@nobreakvspacex}} \def\@nobreakvspacex#1{\ifvmode\nobreak\vskip #1\relax\else \@bsphack\vadjust{\nobreak\vskip #1}\@esphack\fi} \def\@nobreakcr{\vadjust{\penalty\@M}\@ifstar{\@xnewline}{\@xnewline}} \newcommand*{\startbreaks}{\let\\=\@normalcr \interlinepenalty 200\def\par{\@@par\penalty 200\relax}} \newdimen\longindentation \longindentation=.5\textwidth \newdimen\indentedwidth \indentedwidth=\textwidth \advance\indentedwidth -\longindentation % opening modified for attletter to add \makehead \newcommand*{\opening}[1]{\ifx\@empty\fromaddress \thispagestyle{firstpage}% {\makehead\vtop{\hsize2.5in\noindent{\sf\tm@companyname}}\hfill \raggedleft\@date\par}% \else % home address \thispagestyle{empty}% \makehead\hbox{\vtop{\hsize2.5in\noindent{\sffamily\tm@companyname}} \vtop{\hsize3.5in\vspace*{-16\p@}% {\coversheetsize\small\raggedleft\begin{tabular}{l}\ignorespaces \fromaddress \\*[2\parskip]% \@date \end{tabular}\par}}}% \fi \vspace{2\parskip}% {\raggedright \toname \\ \toaddress \par}% \vspace{2\parskip}% #1\par\nobreak} \newcommand{\closing}[1]{\par\nobreak\vspace{\parskip}% \stopbreaks \noindent \ifx\@empty\fromaddress\else \hspace*{\longindentation}\fi \parbox{\indentedwidth}{\raggedright \ignorespaces #1\\[6\medskipamount]% \ifx\@empty\fromsig \fromname \else \fromsig \fi\strut}% \par} \medskipamount=\parskip \newcommand*{\cc}[1]{% \par\noindent \parbox[t]{\textwidth}{% \@hangfrom{\reset@font\rm \ccname: }% \ignorespaces #1\strut}\par} \newcommand*{\encl}[1]{% \par\noindent \parbox[t]{\textwidth}{% \@hangfrom{\reset@font\rm \enclname: }% \ignorespaces #1\strut}\par} \newcommand*{\ps}{\par\startbreaks} \newcommand*{\stopletter}{} \newcommand*{\returnaddress}{} \newcount\labelcount \newcommand*{\startlabels}{\labelcount\z@ \pagestyle{empty}% \let\@texttop\relax \topmargin -50\p@ \headsep \z@ \oddsidemargin -35\p@ \evensidemargin -35\p@ \textheight 10in \@colht\textheight \@colroom\textheight \vsize\textheight \textwidth 550\p@ \columnsep 25\p@ \ifcase \@ptsize\relax \normalsize \or \small \or \footnotesize \fi \baselineskip \z@ \lineskip \z@ \boxmaxdepth \z@ \parindent \z@ \twocolumn\relax} \let\@startlabels=\relax % mlabel changed for attletter to use \labelheight \newcommand*{\mlabel}[2]{% \setbox0\vbox{\parbox[b]{3.6in}{\strut\ignorespaces #2}}% \setbox1\vbox{\parbox[b]{3.6in}{\strut\ignorespaces #1}}% \hbox{ \vbox to \labelheight{\vss \box0 \vss}% \vbox to \labelheight{\vss \box1 \vss}% }% } \let\@mlabel=\@gobbletwo \setlength\partopsep{0\p@} \@beginparpenalty -\@lowpenalty \@endparpenalty -\@lowpenalty \@itempenalty -\@lowpenalty \def\@listI{\setlength\leftmargin{\leftmargini} \setlength\parsep {0\p@}% \setlength\topsep {.4em}% \setlength\itemsep{.4em}} \let\@listi\@listI \@listi \def\@listii {\setlength \leftmargin{\leftmarginii}% \setlength \labelwidth{\leftmarginii}% \addtolength\labelwidth{-\labelsep}} \def\@listiii{\setlength \leftmargin{\leftmarginiii}% \setlength \labelwidth{\leftmarginiii}% \addtolength\labelwidth{-\labelsep}% \setlength \topsep {.2em}% \setlength \itemsep {\topsep}} \def\@listiv {\setlength \leftmargin{\leftmarginiv}% \setlength \labelwidth{\leftmarginiv}% \addtolength\labelwidth{-\labelsep}} \def\@listv {\setlength \leftmargin{\leftmarginv}% \setlength \labelwidth{\leftmarginv}% \addtolength\labelwidth{-\labelsep}} \def\@listvi {\setlength \leftmargin{\leftmarginvi}% \setlength \labelwidth{\leftmarginvi}% \addtolength\labelwidth{-\labelsep}} \renewcommand\footnoterule{% \kern-\p@ \hrule \@width .4\columnwidth \kern .6\p@} \long\def\@makefntext#1{% \noindent \hangindent 5\p@ \hbox to5\p@{\hss\@makefnmark}#1} \newcommand*{\ccname}{cc} \newcommand*{\enclname}{encl} \newcommand*{\pagename}{Page} \newcommand*{\headtoname}{To} \setlength\columnsep{10\p@} \setlength\columnseprule{0\p@} %% attletter extensions to letter \newdimen\labelheight\labelheight=1in \newcommand*{\facesignature}[2]{ \@ifundefined{initbitmap}{\input bitmap.sty}{} \ifx\fromname\@empty\def\fromname{#1}\fi \def\fromsig{% {\parindent=\z@\vskip6\p@ \xdef\tm@facefile{#2}% \vskip-51pt\hskip-3in \parbox[b]{3in}{\vbox{}\hskip2in\input \tm@facefile\hfill}% \parbox[b]{3in}{#1}}}} \renewcommand*{\eaddress}[1]{\def\tm@eaddress{#1}} \newcommand*{\fax}[1]{\def\tm@fax{#1}} \newcommand*{\phone}[1]{\def\tm@phonei{#1}} \newcommand*{\room}[1]{\def\tm@officei{#1}} \newcommand*{\streetaddr}[1]{\def\tm@streetaddr{#1}} % \cityaddr, \companyname, \capcompanyname defined in tm \renewcommand*{\returnaddress}[1]{\def\tm@returnaddr{#1}} % see end for default phone, fax, streetaddr, cityaddr, address, returnaddress \renewcommand{\makehead}{ % now make the header \newpage{\parskip=\z@\ \vskip-70\p@ \font\attlogofont=att36 \hfill\parbox{36pt}{\attlogofont L} \parbox{86pt}{{\attlogofont AT\&T}} \vskip16pt \hrule \vskip6pt }} \pagestyle{headings} \pagenumbering{arabic} \raggedbottom \def\@texttop{\ifnum\c@page=1\vskip \z@ plus.00006fil\relax\fi} \onecolumn % % edit these for the location where this file is installed % \eaddress{} \fax{} \room{\relax} \companyname{AT\&T Bell Laboratories} \capcompanyname{AT\&T BELL LABORATORIES} \phone{908 582-3000} % information number for the location % this number may be replaced with a personal number by calling % \phone in the preamble of the document \fax{908 582-5857} % fax # for 1127 %\fax{908 582-2379} % fax # for 1121 (third floor) \streetaddr{600 Mountain Avenue} \cityaddr{Murray Hill, NJ\quad 07974-0636} \address{% \if\relax\tm@officei\relax\else\tm@officei\\ \fi \tm@streetaddr\\ \tm@cityaddr\\ \tm@phonei\ifx\@empty\tm@fax{}\else\\ FAX: \tm@fax\fi \ifx\@empty\tm@eaddress{}\else\\ \tm@eaddress\fi} \returnaddress{\if\relax\tm@officei\relax\else\tm@officei\\ \fi \tm@streetaddr\\ \tm@cityaddr} \signature{\tm@authori}