Take the 2-minute tour ×
TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. It's 100% free, no registration required.

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}

%This is my header
\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}
share|improve this question
add comment

3 Answers

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:

enter image description here

\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

%This is my header
\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.

share|improve this answer
    
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
add comment

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

to your MWE.

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.

share|improve this answer
add comment

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 :).

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.