[Tex/LaTex] How to align address block and date with signature

horizontal alignmentletters

I need to have the address and date aligned with the signature headers, like with the semi-block header type, but the address block is located all the way to the right of the page while the signature is in the middle. My document looks like this:

\documentclass[10pt,letterpaper]{letter}
\usepackage[utf8]{inputenc}

\address{0000 Easy Street,\\
Nowhere, CA 00000}

\signature{Joe Schmoe}

\begin{document}
\begin{letter}{Somewhere}

\opening{Dear blah..:}

Blah blah blah blah blah.

\closing{Sincerely,}

\end{letter}
\end{document}

I have tried inserting negative space in front of each line of the address, via \hspace, but that only moved the address.

I have also looked at using \longindentation to move the signature all the way to the right, but that isn't the result I want.

How can I move the address so that it aligns with the signature?

Best Answer

The easiest is to align the address to the signature, as it relies only on the spacing to the left of the two structures:

enter image description here

\documentclass[10pt,letterpaper]{letter}

\usepackage{etoolbox}
\patchcmd{\opening}% <cmd>
  {\raggedleft\begin}% <search>
  {\hspace*{\dimexpr\longindentation-\tabcolsep}\begin}% <replace>
  {}{}% <success><failure>


\address{0000 Easy Street,\\
Nowhere, CA 00000}

\signature{Joe Schmoe}

\begin{document}
\begin{letter}{Somewhere}

\opening{Dear blah..:}

Blah blah blah blah blah.

\closing{Sincerely,}

\end{letter}
\end{document}

Above I've patched \opening to insert a gap equivalent to that of the \closing macro, minus the \tabcolsep inserted by \opening as it sets the address and date in a tabular.


Of course, it is just as easy to replicate the letter class inside the default article class, which allows you far greater freedom when trying to position and adjust things:

enter image description here

\documentclass{article}

\setlength{\parindent}{0pt}

\begin{document}

\hspace*{.5\textwidth}%
\begin{tabular}{@{}l}
  0000 Easy Street, \\
  Nowhere, CA 00000 \\ \\
  \today
\end{tabular}

\bigskip

Somewhere

\bigskip

Dear blah..:

\medskip

Blah blah blah blah blah.

\bigskip

\hspace*{.5\textwidth}%
\begin{tabular}{@{}l}
  Sincerely, \\[4\normalbaselineskip]
  Joe Schmoe
\end{tabular}

\end{document}