Corrección de alineación con el resto del texto.

Corrección de alineación con el resto del texto.

ingrese la descripción de la imagen aquí

La imagen incluida arriba es lo que quiero replicar: quiero que el nombre aparezca en la parte superior izquierda y la dirección/ID de correo electrónico aparezca en la parte superior derecha, y quiero que ambos estén alineados con el cuerpo del texto.

El siguiente es mi intento (el texto bla, bla, está ahí para demostrar el problema de alineación):

\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}

Y lo que obtengo de esto es esto...

ingrese la descripción de la imagen aquí

Como se puede ver, el texto de dirección/ID de correo electrónico a la derecha se desborda y excede el margen de texto para el resto del documento.

¿Cómo lo soluciono? Además, ¿es buena idea utilizar tablas para este tipo de diseño? ¿Cuál es una buena alternativa?

Gracias de antemano.

Respuesta1

Sugeriría evitar el marcado explícito, que es tedioso y propenso a errores.

Mi realización del encabezado utiliza tabular*dos tabularentornos anidados que garantizan el centrado vertical como en el original.

Para los datos personales, sugiero un dataentorno que contenga tanto la parte izquierda como la parte derecha, cada una con el prefijo de los comandos correspondientes. El ancho de la parte derecha se calcula de una vez por todas al principio del documento y el ancho de la parte izquierda se calcula en consecuencia, dejando un espacio predeterminado (aquí dos 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}

showframePor supuesto, la opción es sólo para este ejemplo. Nunca utilice el a4widepaquete obsoleto.

ingrese la descripción de la imagen aquí

información relacionada