Исправление выравнивания с остальным текстом

Исправление выравнивания с остальным текстом

введите описание изображения здесь

Изображение выше — это то, что я хочу воспроизвести: я хочу, чтобы имя отображалось вверху слева, а адрес/идентификатор электронной почты — вверху справа, и я хочу, чтобы оба они были выровнены с основным текстом.

Ниже представлена ​​моя попытка сделать это (текст бла-бла-бла здесь для того, чтобы продемонстрировать проблему выравнивания) -

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

И вот что я из этого получаю -

введите описание изображения здесь

Как можно заметить, текст адреса/идентификатора электронной почты справа выходит за пределы текстового поля остального документа.

Как это исправить? Также, хорошая ли идея использовать таблицы для такого вида макета? Какая хорошая альтернатива?

Заранее спасибо.

решение1

Я бы посоветовал избегать явной разметки, так как она утомительна и подвержена ошибкам.

Моя реализация заголовка использует tabular*две вложенные tabularсреды, которые обеспечивают вертикальное центрирование, как в оригинале.

Для персональных данных я предлагаю dataсреду, содержащую как левую, так и правую часть, каждая из которых имеет префикс в виде соответствующей команды. Ширина правой части вычисляется один раз и навсегда в начале документа, а ширина левой части вычисляется соответственно, оставляя некоторое предопределенное пространство (здесь два em).

\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Конечно, эта опция только для этого примера. Никогда не используйте устаревший a4wideпакет.

введите описание изображения здесь

Связанный контент