Corrigindo o alinhamento com o resto do texto

Corrigindo o alinhamento com o resto do texto

insira a descrição da imagem aqui

A imagem incluída acima é o que desejo replicar - quero que o nome apareça no canto superior esquerdo e o endereço/id de e-mail no canto superior direito, e quero que ambos estejam alinhados com o corpo do texto.

A seguir está minha tentativa (o texto blá, blá está lá para demonstrar o problema de alinhamento) -

\documentclass[a4paper,10pt]{article}

\usepackage{a4wide}
\usepackage{color}
\usepackage{xcolor,mdframed}

\usepackage[hmargin=1cm,vmargin=1.5cm]{geometry}

\begin{document}

\begin{tabular*}{\textwidth}{@{\extracolsep{\fill} } l r }
  \huge{\textbf{John Doe}} & Qtr D/40, Unit 12, Upper Kolkata\\
                           & (011) 2040-3455 [email protected]\\
\end{tabular*}

\bigskip

\begin{minipage}[c]{0.3\linewidth}
\begin{mdframed}[backgroundcolor=gray!10]
\bigskip
blah blah blah blah blah blah blah blah blah \
blah blah blah blah blah blah blah blah blah blah blah blah \
\bigskip
\end{mdframed}
\end{minipage} 
\begin{minipage}[c]{0.2\linewidth}

\end{minipage} 
\begin{minipage}[c]{0.6\linewidth}
blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah
blah blah blah blah blah blah blah blah blah blah blah blah blah blah      
blah blah blah
\end{minipage} 

\end{document}

E o que eu ganho com isso é isso -

insira a descrição da imagem aqui

Como pode ser visto, o texto do endereço/id de e-mail à direita transborda e excede a margem do texto para o restante do documento.

Como faço para corrigir isso? Além disso, é uma boa ideia usar tabelas para esse tipo de layout? Qual é uma boa alternativa?

Desde já, obrigado.

Responder1

Eu sugiro evitar marcações explícitas, que são tediosas e sujeitas a erros.

Minha realização do cabeçalho usa tabular*dois tabularambientes aninhados que garantem a centralização vertical como no original.

Para os dados pessoais, sugiro um dataambiente que contenha tanto a parte esquerda quanto a parte direita, cada uma prefixada pelos comandos correspondentes. A largura da parte direita é calculada de uma vez por todas no início do documento e a largura da parte esquerda é calculada de acordo, deixando algum espaço pré-determinado (aqui dois ems).

\documentclass[a4paper,10pt]{article}
\usepackage[hmargin=1cm,vmargin=1.5cm,showframe]{geometry}

\usepackage{color}
\usepackage{xcolor,mdframed}

\newsavebox{\databox}
\newlength{\datawidth}
\AtBeginDocument{
  \sbox{\databox}{%
    \leftpart Mock text
    \end{mdframed}\end{minipage}}
  \setlength{\datawidth}{\wd\databox}
}
\newenvironment{data}
 {\noindent\ignorespaces}
 {\end{minipage}\par}
\newcommand{\leftpart}{%
  \begin{minipage}{.3\textwidth}
  \begin{mdframed}[
    backgroundcolor=gray!10,
    innertopmargin=\bigskipamount,
    innerbottommargin=\bigskipamount]}
\newcommand{\rightpart}{%
  \end{mdframed}
  \end{minipage}\hfill
  \begin{minipage}{\dimexpr\textwidth-2\tabcolsep-\datawidth}}


\begin{document}

\noindent%%% remember this
\begin{tabular*}{\textwidth}{@{\extracolsep{\fill} } l r@{}}
\begin{tabular}{@{}l@{}}
  \huge\bfseries John Doe
\end{tabular}
&
\begin{tabular}{@{}l@{}}
  Qtr D/40, Unit 12, Upper Kolkata\\
  (011) 2040-3455 [email protected]
\end{tabular}
\end{tabular*}

\bigskip

\begin{data}
\leftpart
blah blah blah blah blah blah blah blah blah

blah blah blah blah blah blah blah blah blah blah blah blah

\rightpart

blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah
blah blah blah blah blah blah blah blah blah blah blah blah blah blah      
blah blah blah
\end{data} 

\end{document}

A showframeopção é, obviamente, apenas para este exemplo. Nunca use o a4widepacote obsoleto.

insira a descrição da imagem aqui

informação relacionada