# Reduce vertical space between heading and body

I use the lettre package to write letters (in French).

This package generates a massive space between the heading and the subject line.

See:

This space is created to print references of the letter but I never want to print reference number in a letter.

How can I reduce this vertical space?

MWE:

\documentclass[11pt]{lettre}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[francais]{babel}
\usepackage{kantlipsum}

\begin{document}
\begin{letter}{to Mr X}
\name{sender}
\conc{Subject}

\opening{Dear sir,}

\kant[42]

\closing{Bye Bye}

\end{letter}
\end{document}

• Would adding to your preamble \setlength{\openingspace}{0cm} be enough? – Bernard Jun 26 '18 at 16:34

The header of the letter environment is built in the picture-mode is currently the user recommended enterprise method of drawing easily (picture-mode).

This picture takes as height the contents of \pict@let@height, and as starting vertical position, \pict@let@voffset. These parameters are set internally by lettre.cls as:

\def\pict@let@height{65}%
\def\pict@let@voffset{0}%


reducing only \pict@let@height makes the contents of the header to be inserted off the top of the page. Apparently the sum \pict@let@height+\pict@let@voffset must equal 65.

So one can define a macro:

\def\SetHeaderSize#1{%
\edef\pict@let@height{#1}%
\edef\pict@let@voffset{\numexpr65-#1}%
}


that takes as argument the desired height of the header and it computes the voffset automatically (the macro has to be used right after \begin{letter}). I used 15 and it looked okay for me:

Unfortunately I don't think there's a more automatic way to do this.

\documentclass[11pt]{lettre}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[francais]{babel}
\usepackage{kantlipsum}

\makeatletter
\edef\pict@let@height{#1}%
\edef\pict@let@voffset{\numexpr65-#1}%
}
\makeatother

\begin{document}

\begin{letter}{to Mr X}