[comp.text.tex] Customized letterheads

msd@enh.nist.gov (M. Scott Dewey) (12/04/90)

Dear Experts,

I would like to collect some examples of customized letterheads so that I
can design my own for use with the LaTeX letter style.  This letter is a
request for some examples.

On an unrelated note, I cannot say enough good about both the emTeX
distribution and Tomas Rokicki's dvips on the PC.  I've used both of them
together (heavily) for a week now.  Together they make the perfect
integrated system.  I strongly recommend people use the combination if they
can.  No longer is importing graphics a problem for me.

Thanks!
-- 
NAME:   Dr. M. Scott Dewey             TELE: (301) 975-4843
DIVISION: Quantum Metrology            INTERNET: msd@enh.nist.gov
USMAIL: NIST (formerly NBS)            BITNET: msd@nbsenh
        Rm. A-141, Bldg. 221
        Gaithersburg, MD  20899

grunwald@foobar.colorado.edu (Dirk Grunwald) (12/06/90)

I use the following two files for our local letterhead. The first page
of a letter will have a letterhead and the letter body (but not head)
will be centered (looks good for short things). Subsequent pages are
not centered, they're flush top and have a running head that includes
the name of the recipient.

'culetterhead.sty' prints out the local letterhead. It uses the
standard 'letter.sty', redefining various function.  It has hooks so
that different departments can customize it. 'csletter.sty' is the
customization for the CS department. I also have my own customization
that provides my name, email, etc.  It looks like:

\name { Dirk Grunwald }
\telephone{(303) 492--0452}
\email{{\tt grunwald@boulder.colorado.edu}}
\signature { Dirk Grunwald }

I normally just \input a file containing this. Here's the other files
-- the 'culogo' file contains the local letterhead logo & is
unimportant. A lot of the headache is just adjusting margins, etc to
local conventions.

#! /bin/sh
# This is a shell archive.  Remove anything before this line, then unpack
# it by saving it into a file and typing "sh file".  To overwrite existing
# files, type "sh file -c".  You can also feed this as standard input via
# unshar, or by typing "sh <file", e.g..  If this archive is complete, you
# will see the following message at the end:
#		"End of shell archive."
# Contents:  csletter.sty culetterhead.sty
# Wrapped by grunwald@foobar on Wed Dec  5 21:24:06 1990
PATH=/bin:/usr/bin:/usr/ucb ; export PATH
if test -f 'csletter.sty' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'csletter.sty'\"
else
echo shar: Extracting \"'csletter.sty'\" \(600 characters\)
sed "s/^X//" >'csletter.sty' <<'END_OF_FILE'
X\input{culetterhead.sty}
X\campus{at Boulder}
X%%
X%%	The location goes immediately above the horiz. line.
X%%
X\location{Department of Computer Science \hfill}
X%%
X%%	You can also list multi-line things using tabular
X%%
X%%\begin{tabular}[b]{@{}l}\@fromlocation\end{tabular}%
X\address{%
X\begingroup%
X\vtop{%
X\hbox{\ignorespaces\ifx\@empty\fromname\relax\else\fromname\fi}
X\hbox{Campus Box 430}
X\hbox{Boulder, Colorado 80309--0430}
X\hbox{\ignorespaces\ifx\@empty\@telephone\relax\else\@telephone\fi}
X\hbox{\ignorespaces\ifx\@empty\@email\relax\else\@email\fi}
X\vskip\baselineskip%
X\hbox{\today}}\endgroup
X}
END_OF_FILE
if test 600 -ne `wc -c <'csletter.sty'`; then
    echo shar: \"'csletter.sty'\" unpacked with wrong size!
fi
# end of 'csletter.sty'
fi
if test -f 'culetterhead.sty' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'culetterhead.sty'\"
else
echo shar: Extracting \"'culetterhead.sty'\" \(9881 characters\)
sed "s/^X//" >'culetterhead.sty' <<'END_OF_FILE'
X\input{letter.sty}
X\typeout{Document Style 'Univ. of Colorado Letterhead' Released 29 June 1990}
X
X\def\@ptsize{2}                     % Default is 12pt.
X\@namedef{ds@10pt}{\def\@ptsize{0}} % 10pt option.
X\@namedef{ds@11pt}{\def\@ptsize{1}} % 11pt option.
X\@namedef{ds@12pt}{\def\@ptsize{2}} % 12pt option.
X
X%%
X%%	bring in logo painting code
X%%
X\input{culogo.tex}
X
X% UCB LETTERHEAD
X%
X%	and the university wants 80pt margins - we compensate for 1in hoffset
X%
X\oddsidemargin=80pt
X\advance\oddsidemargin by -1in
X\evensidemargin=\oddsidemargin
X\marginparwidth  50pt      % Width of marginal notes.
X\marginparsep    11pt      % Horizontal space between outer margin and 
X                           % marginal note
X\marginparpush 5pt         % Minimum vertical space between marginal notes.
X
X% VERTICAL SPACING:        
X% UCB LETTERHEAD
X%
X                         % Top of page:
X\voffset -1in
X\topmargin 0in           %    Nominal distance from top of page to top of
X                         %    box containing running head.
X%%
X%%	These values reset in \ps@firstCUpage
X%%
X\headheight=2.0in         %    Height of box containing running head.
X\headsep=0.0in
X\topskip=0.5in         %    '\baselineskip' for first line of page.
X                         % Bottom of page:
X\footheight 12pt         %    Height of box containing running foot.
X\footskip 25pt           %    Distance from baseline of box containing foot 
X                         %    to baseline of last line of text.
X
X\textheight=8in          % Height of text (including footnotes and figures, 
X                         % excluding running head and foot).
X\textwidth 470pt         % Width of text line.
X\newdimen\letterHeadWidth
X\letterHeadWidth 7in
X
X\flushbottom		%% undo \raggedbottom in letter.sty
X
X% The following declarations, shown with examples, give information about the
X% sender:
X%
X% \name{Dr. L. User} : to be used for the return address on the envelope.
X% \signature{Larry User} : goes after the closing.
X% \address{3245 Foo St.\\Gnu York} : used as the return address in the letter
X%          and on the envelope.  If not declared, then an institutional 
X%          standard address is used.
X% \location{Room 374} : Acts as modifier to the standard institutional address.
X% \telephone{(415)123-4567} : Just in case some style puts it on the letter.
X% 
X% The \makelabels declaration causes mailing labels to be made.  It must
X% go before the \begin{document} command.  
X%
X% The letter environment: creates a new letter, starting from page 1.
X% (The first page is unnumbered.)  It has a single argument, which
X% is the adressee and his address, as in
X%        \begin{letter}{Sam Jones \\ 
X%                       Institute for Retarded Study\\ Princeton, N.J.}
X%
X% Local declarations, such as \address, can follow the \begin{letter}.
X%
X% Text is begun with the \opening command, whose argument generates the
X% salutation, as in 
X%           \opening{Dear Henry,} 
X% The body of the letter follows, ended by a \closing command, as in
X%            \closing{Yours truly,} 
X% The 'signature' is provided automatically.
X%  
X%  After the \closing you can put arbitrary stuff, which is typeset
X%  with \parindent = 0 and no page breaking.  Commands designed
X%  for use after the closing are:
X%
X%  \cc{Tinker\\Evers\\Chance} -- which produces:
X%        cc: Tinker
X%            Evers
X%            Chance
X%  
X%  \encl{Foo(2)\\Bar} -- which produces:
X%        encl: Foo(2)
X%              Bar
X%
X%
X%  DOCUMENT STYLE PARAMETERS AND COMMANDS.  CHANGE THESE TO
X%  CUSTOMIZE LETTER STYLE.
X%
X%  \opening{Dear Mr. Foo:}- Command to produce everything up to and including
X%     Should produce everything up to and including the 'Dear Mr. Foo:'
X%     and a \par command that follows.  Since there's a \vfil at the bottom
X%     of every page, it can add vertical  fil  to position a short letter.
X%     It should use the following commands:
X%       
X%     \toname       : name part of 'to' address.  Will be one line long.
X%     \toaddress    : address part of 'to' address. Lines separated by \\.
X%     \fromname     : name of sender.
X%     \@fromaddress  : argument of current \address declaration--null if none.
X%                     Should use standard institutional address if null.
X%     \@fromlocation : argument of current \location declaration--null if none.
X%     \@telephone : argument of current \telephone declaration--null if none.
X%
X%     Note that  \ifx\foo\@empty  tests for a null value of \foo.
X%
X%  \closing{TXT} : Generates the closing matter, and the signature.
X%     An obvious thing to do is to use a \parbox for the closing
X%     and the signature.  Should use the following:
X%
X%     \fromsig    : argument of current \signature declaration or, if null,
X%                   the \fromname .
X%     \stopbreaks : a macro that inhibits page breaking.
X%
X%  \cc{ARG} and \encl{ARG} : obvious use of a \parbox[t] .
X%
X%  \ps : The only thing that this needs to do is call \startbreaks, which
X%        allows page breaking again.
X%
X%  \stopletter : Command called by \endletter to do the following:
X%     * Add any desired  fil  or other material at the end of the letter.
X%     * Define \returnaddress to be the return address for the mailing label.
X%       More precisely, it is the first argument of the \mlabel command
X%       described below. It should be \def'd to null if the return address
X%       doesn't appear on the labels.  Any command, other than \\, that
X%       should not be expanded until the \mlabel command is actually 
X%       executed must be preceded by \protect.  Whenever possible,
X%       \protect commands in the definition of \returnaddress---it's
X%       much more efficient that way.  In particular, when the standard
X%       return address is used, you should \def \returnaddress to something
X%       like \protect\standardreturnaddress .
X
X\newdimen\longindentation
X\longindentation=2.75in
X\newdimen\indentedwidth
X\indentedwidth=\textwidth
X\advance\indentedwidth -\longindentation
X
X\def\opening#1{
X\thispagestyle{firstCUPage}\pagestyle{otherUCPages}\par
X\vspace*{24pt}\raggedright
X
X%
X%	UCB LETTERHEAD
X%
X%	After talking to a couple of secy's and getting the format straight,
X%	here's the opening format. The idea is to force a double-spaced
X%	gap between the address and the greeting, and the greeting and the
X%	letter body.
X%
X%	By forcing the \ignorespaces, we eliminate any distinction between
X%	having a new line after the \opening or not.
X%
X  \vbox{
X	\toname \\
X	\toaddress% \\
X	\vspace*{2ex}	%  ex should be about right
X	\ifx\@empty\subjectline\vspace*{2ex}%
X	  \else\subjectline\\\vspace*{2ex}\fi
X	#1 \\
X	\vspace*{3ex}
X  }
X  \nobreak}
X
X\long\def\leftclosing#1{
X  \par\nobreak
X  \stopbreaks
X  \noindent
X  \ignorespaces #1\\[2.5\baselineskip]
X  \ifx\@empty\fromsig \fromname \else \fromsig \fi\strut
X  \par
X}
X
X\long\def\rightclosing#1{
X  \par\nobreak
X  \stopbreaks
X  \noindent
X  \hspace*{\longindentation}
X   \parbox{\indentedwidth}
X   {\raggedright
X    \ignorespaces #1\\[2.5\baselineskip]
X    \ifx\@empty\fromsig 
X       \fromname
X    \else \fromsig \fi\strut
X   }
X   \par
X}
X
X\def\closing{\rightclosing}
X
X\def\ps{\par\startbreaks}
X
X\def\cc#1{\noindent
X\parbox[t]{\textwidth}{\@hangfrom{\rm  Cc: }\ignorespaces #1\strut}\par}
X
X\def\encl#1{\noindent
X\parbox[t]{\textwidth}{\@hangfrom{\rm  Encl: }\ignorespaces #1\strut}\par}
X
X\def\typedby#1{\noindent
X\parbox[t]{\textwidth}{\@hangfrom\ignorespaces #1\strut}\par}
X
X\def\stopletter{\vspace*{\fill}}
X
X% UCB LETTERHEAD
X%	Define the letterhead. 
X%
X%	8 point small type for the letterhead, 12 point header
X%
X\def\@letterHeadNormal{
X\@setsize\normalsize{8.5pt}\viiipt\@viipt  
X\abovedisplayskip 10pt plus2pt minus5pt%
X\belowdisplayskip \abovedisplayskip
X\abovedisplayshortskip  \z@ plus3pt%   
X\belowdisplayshortskip  6pt plus3pt minus3pt}
X\def\@letterHeadLarge{\@setsize\Large{14pt}\xiipt\@xiipt}
X%
X\def\culetterhead{%
X\begingroup%
X\@letterHeadNormal%
X\kern-4pt%			%% I STILL DON'T KNOW WHY I NEED THIS!!
X\vbox to \headheight{%
X\vtop to 3pc{%
X\vfill\setbox1=\hbox{\culogofont\CUlogoD\hskip 4pt}%
X\hbox to 8in{\kern-\wd1\box1\@letterHeadLarge University of Colorado \@campus \hfill}}%
X\vtop to 4pc{%
X\vfill\hbox to 8in{\@fromlocation}%
X\vskip 9pt\hrule height 0.1pt depth 0.1pt width \letterHeadWidth}%
X\vtop{\vskip 2pt\relax\@fromaddress}\vss}%
X\endgroup}
X
X%
X%	UIUC LETTERHEAD
X%	a \subject line is place a single line above the opening address.
X
X\def\signature#1{\def\fromsig{#1}}
X\def\fromsig{}
X
X\long\def\subject#1{\def\subjectline{{#1}}}
X\def\subjectline{}
X
X\long\def\address#1{\def\@fromaddress{#1}}
X\def\@fromaddress{}
X
X\def\email#1{\def\@email{#1}}
X\def\@email{}
X
X\def\location#1{\def\@fromlocation{#1}}
X\def\@fromlocation{}
X
X\def\campus#1{\def\@campus{#1}}
X\def\@campus{}
X
X\def\telephone#1{\def\@telephone{#1}}
X\def\@telephone{}
X
X%    ****************************************
X%    *            PAGE STYLES               *
X%    ****************************************
X
X%	I prefer to have the first page centered & all other pages
X%	pushed to the top
X%
X\def\@texttop{\ifnum\c@page=1\vfill\relax\fi}
X\def\@textbottom{\vfill}
X
X% The firstpage heading style puts the telephone number
X% in the proper place for the SRI letterhead.  It must be changed for
X% other sites.
X
X\def\ps@firstCUPage{
X	\def\@oddhead{\culetterhead}
X	\def\@oddfoot{}
X	\def\@evenhead{}\def\@evenfoot{}
X}
X
X\def\ps@otherUCPages{
X\headheight=5pc
X\headsep=40pt
X\textheight=9in
X	\def\@oddhead{
X	  \if\@empty\toname \else \toname \fi
X	  \hfil \thepage \hfil \today }
X	\let\@evenhead\@oddhead
X	\def\@oddfoot{}
X	\def\@evenfoot{}
X}
X
X%  ****************************************
X%  *           PARAGRAPHING               *
X%  ****************************************
X
X\parskip 1.5\baselineskip          % Extra vertical space between paragraphs.
X
X%%
X%% MAKE LABELS be optional
X%%
X%\def\startlabels{}
X%\def\mlabel#1#2{}
X\@fileswfalse                % Inhibits writing of .AUX file.
END_OF_FILE
if test 9881 -ne `wc -c <'culetterhead.sty'`; then
    echo shar: \"'culetterhead.sty'\" unpacked with wrong size!
fi
# end of 'culetterhead.sty'
fi
echo shar: End of shell archive.
exit 0