Justify text in moderncv cover letter

Add the following to your document preamble, after loading the moderncv style (classic):

\usepackage{etoolbox}% http://ctan.org/pkg/etoolbox
\makeatletter
\patchcmd{\makeletterhead}% <cmd>
  {\raggedright \@opening}% <search>
  {\@opening}% <replace>
  {}{}% <success><failure>
\makeatother

output

The above patch just removes the necessary \raggedright from the template at the correct location (just before calling \@opening).


You can simply include:

\usepackage{ragged2e}

and right after \makelettertitle put:

\justify

Works fine for me both with classic and with casual.


Just fix the "bug" in moderncv templates. If you use banking style, go to moderncvstylebanking.sty and change

% opening
\raggedright%
\@opening\\[1.5em]%

into

% opening
{\raggedright%
\@opening\\[1.5em]}%

Note that this simply enclose the raggedright command, so it won't affect the entire document from this point onwards. You can do the same for each of the other styles.