# Reducing white space above date in Letter Class

How can I reduce the amount of whitespace at the top of the page in the letter class? I've added some text to serve as a letterhead, and everything is lined up... but starts way too low! Does anyone have suggestions for how to get my first line of text to line up with the top?

\documentclass{letter}
\begin{document}
\thispagestyle{empty}

\signature{Nathan S. Lachenmyer}
\longindentation=0pt
\let\raggedleft\raggedright
\vfill

\begin{letter}{
Senior Staff Recruiter \\
XYZ Corporation \\
Rt. 56 \\
Anytown, New Jersey 05867}

\centerline{\huge \bf \sc Nathan S. Lachenmyer}
\begin{center}
\line(1,0){450}
\end{center}

%letter begins here
\opening{Dear Person:}

Letter goes here

\closing{Sincerely Yours,}
\end{letter}
\end{document}

-

The easiest approach here, without mucking around with page dimension modifications, is to insert a vertical re-adjustment using \vspace*{<len>} where <len> is some negative value. For example, in the following MWE, I've used \vspace*{-10\baselineskip} to vertically "back up" 10 lines:

\documentclass{letter}
\usepackage{showframe}% http://ctan.org/pkg/showframe
\begin{document}
\thispagestyle{empty}

\signature{Nathan S. Lachenmyer}
\longindentation=0pt
\let\raggedleft\raggedright

\begin{letter}{%
Senior Staff Recruiter \\
XYZ Corporation \\
Rt. 56 \\
Anytown, New Jersey 05867}

\vspace*{-10\baselineskip}% Correct for vertical displacement

\centerline{\huge \bf \sc Nathan S. Lachenmyer} \par
%\begin{center}
%\line(1,0){450}
%\end{center}
\hrulefill

%letter begins here
\opening{Dear Person:}

Letter goes here

\closing{Sincerely Yours,}
\end{letter}

\end{document}


I've added the showframe package to highlight the page/type block dimensions setup using the letter document class. If you wish to change these to occupy more of the page real estate, use the geometry package.

Ps. Instead of using \line with some fixed measurement to draw a horizontal line, use \hrulefill, which will fill across the entire text block without causing overful \hbox warnings.

-
Thank you! This is exactly what I was looking for! I couldn't figure out to add 'negative' vertical space to the file, but this works perfectly :) –  asymptoticdesign Feb 23 '12 at 7:18
You would have to customize the spacing for each and every letter. If you keep \vspace*{-10\baselineskip}, but add a few lines of text to the letter, the header shoots off the top of the page. –  StrongBad Feb 23 '12 at 13:09
@asymptoticdesign: You should use @ DanielE.Shub's suggestion for removing the centred look of the letter. My solution provides a quick fix that works in your case. –  Werner Feb 23 '12 at 14:51

Inserting a negative space is going to be problematic since the amount of space needed depends on the length of the letter. The letter class centers the text on the first page when the length of the letter is only 1 page long. See line 414 in letter.cls

\def\@texttop{\ifnum\c@page=1\vskip \z@ plus.00006fil\relax\fi}

You can get a top aligned letter by adding

\makeatletter
\def\@texttop{}
\makeatother


You should also consider if you want to add your "header" information into the actual header of ps@firstpage (you could do this with fancyhdr). Then you can have a vertically centered 1 page letter with your header at the top.
I found an easy method. Just use the \vspace{-xxpt} to reduce the space in the beginning of the letter. This command should be inserted just before the text line that shows the big gap. For. Ex. I have a large gap in my letter between my contact info and date. SO, just after my contact info, I inserted the command \vspace{-40pt}. You may need to adjust text height (\textheight{10 in} if the letter is two long to fit in to one page. It worked like a charm :).