[Tex/LaTex] Reduce vertical space above recipient name & address in moderncv cover letter

cvletterspacingmoderncvtitles

I am using moderncv, classic style, with the picture & my info on the right. In the cover letter, I want to reduce the vertical space above the recipient name/address (labelled 'A' in the pic) while retaining the date in the same place. Is it possible?
I want to do this to fit the cover letter in one page. Playing with

  • the page margins or
  • putting a \vspace before \makelettertitle

only helps so far until the layout starts to look very bad. It shifts up the letter title block (of the whole pagewidth) & it looks quite bad. So that helped only a little but not much.
Any advice/help is greatly appreciated! Thanks! enter image description here

Best Answer

If you want to only move the address block, i.e. the Company Recruitment ... text, you can add negative vertical space to the arguments of the \recipient command directly:

\recipient{\vspace{-4.5cm} Company Recruitment team}{Company, Inc.\\123 somestreet\\some city}

Result: Rendered LaTeX

If you want to also move the letter text upwards, I would suggest wrapping the first paragraph (or maybe the entire text) in a parbox environment, with a horizontal size less than the pagewidth (the first argument to parbox). You can then pull up the text with negative \vspace. This is a bit of a hacky solution, and I couln't make these ideas work with the \opening command, so you might have to add your opening manually.

\documentclass[11pt,a4paper,sans]{moderncv}
\moderncvstyle{classic}
\usepackage[utf8]{inputenc}
\usepackage[scale=0.75]{geometry}

\name{John}{Doe}
\title{Resumé title}
\address{street and number}{postcode city}{country}
\phone[mobile]{+1~(234)~567~890}
\phone[fixed]{+2~(345)~678~901}
\phone[fax]{+3~(456)~789~012}
\email{john@doe.org}
\homepage{www.johndoe.com}
\begin{document}

\recipient{\vspace{-4.5cm} Company Recruitment team}{Company, Inc.\\123 somestreet\\some city}
\date{January 01, 1984}
\opening{}
\closing{Yours faithfully,}

\makelettertitle

\vspace{-4cm}

\parbox{0.7\textwidth}{Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis ullamcorper neque sit amet lectus facilisis sed luctus nisl iaculis. Vivamus at neque arcu, sed tempor quam. Curabitur pharetra tincidunt tincidunt. Morbi volutpat feugiat mauris, quis tempor neque vehicula volutpat. Duis tristique justo vel massa fermentum accumsan. Mauris ante elit, feugiat vestibulum tempor eget, eleifend ac ipsum.}

Suspendisse commodo, massa eu congue tincidunt, elit mauris pellentesque orci, cursus tempor odio nisl euismod augue. Aliquam adipiscing nibh ut odio sodales et pulvinar tortor laoreet. 

\makeletterclosing
\end{document}

Result: Rendered LaTeX