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.

Is there a way to move the to-address up (or, respectively, the date down) in the »letter« document class? With the to-address on the left and date on the right, I wish for the vertical alignment of the top row of the to-address to be the same as that of the date. Does anyone know a way of doing this?

share|improve this question

4 Answers 4

up vote 10 down vote accepted

Use the source, Luke. The letter.cls file is actually not that hard to read compared to article.cls :-)

If you redefine \opening you should be able to get what you want:

\makeatletter
\renewcommand*{\opening}[1]{%
%  \ifx\@empty\fromaddress
%    \thispagestyle{firstpage}%
%      {\raggedleft\@date\par}%
%  \else  % home address
%    \thispagestyle{empty}%
%    {\raggedleft\begin{tabular}{l@{}}\ignorespaces
%      \fromaddress \\*[2\parskip]%
%      \@date \end{tabular}\par}%
%  \fi
%  \vspace{2\parskip}%
%  {\raggedright \toname \\ \toaddress \par}%
  \begin{minipage}[t]{0.5\textwidth}%
    \toname \\ 
    \toaddress
  \end{minipage}\hfill\@date\par
  \vspace{2\parskip}%
  #1\par\nobreak}
\makeatother

The commented-out part is a switch based on whether a from-address is given. I'm assuming you aren't using a from-address since otherwise you would have specified where you wanted it.

share|improve this answer
2  
+1 for "Use the source, Luke". –  lockstep Nov 16 '10 at 21:18
    
Great idea, thanks! –  Kristen Nov 16 '10 at 23:05

You may take a look at more sophisticated classes like »scrlttr2« from KOMA Script (see also this question) or newlfm (for remarks see this question).

share|improve this answer

Starting from Matthew's answer, I looked in the letter.cls file, and I found two values that I manually changed to fit my bill.

Note that this worked for my single-page, very simple letter; it is not guaranteed to work for you.

  1. Start with this (found somewhere on the internet):

    \makeatletter
    \let\@texttop\relax
    \makeatother
    

    This will reduce the margin a little bit.

  2. However, that wasn't enough for me, so I searched in letter.cls for the phrase @texttop, and found that adding the following changed the margins on the first page to what they are on the rest of the page:

    \setlength\topmargin{-50pt}
    \setlength\textheight{10in}
    

Good luck!

share|improve this answer

I found it easier to simply alter the textwidth and margin parameters. For instance, you can insert the following commands in the preamble and change the numbers to tweak the spacing as you like. You can also insert multiple \\ at the end of the \address (or end of the \date) gives more space between the return address and the actual start of the letter.

\textwidth16cm \textheight21cm \oddsidemargin-0.1cm \topmargin-2.25in
\evensidemargin-0.1cm
share|improve this answer
3  
Instead of insterting lots of \` you could also use \vspace{<length>}` –  Tom Bombadil Sep 21 '12 at 9:15

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.