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...
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 tabular
entornos anidados que garantizan el centrado vertical como en el original.
Para los datos personales, sugiero un data
entorno 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}
showframe
Por supuesto, la opción es sólo para este ejemplo. Nunca utilice el a4wide
paquete obsoleto.