¿Cómo hacer que el texto se alinee a la izquierda/centro/derecha en la misma línea?

Estoy tratando de alinear algún texto a la izquierda/centro/derecha en la misma línea. Por ejemplo, quiero poner mi número de teléfono a la izquierda, mi nombre en el centro y mi correo electrónico a la derecha, ¿cómo lo hago?

Solución

El uso de hfill no necesariamente resultará en que el texto del medio esté centrado, como lo demuestra el ejemplo de abajo. Si desea colocar el texto de tal manera que el texto del medio esté realmente centrado, sugeriría usar parbox, como muestra el ejemplo (utilicé el comando lipsum[2] para generar un texto que se utilizara sólo como referencia):

\documentclass{article}
\usepackage{lipsum}

\newcommand\textbox[1]{%
  \parbox{.333\textwidth}{#1}%
}

\begin{document}

\noindent Left longer sample simple text\hfill Center?\hfill Right

\noindent\textbox{Left longer sample text\hfill}\textbox{\hfil Center\hfil}\textbox{\hfill Right}

\noindent\lipsum[2]

\end{document}

introduzca la descripción de la imagen aquí

Si esta construcción se va a utilizar muchas veces, sería mejor tener un comando; algo parecido al comando "textline" cuya definición y uso se ilustran en el siguiente ejemplo (en el que también he incorporado la sugerencia de egreg'sobre "draggedleft", "centering" y "draggedright"):

\documentclass{article}
\usepackage{lipsum}

\newcommand\textline[4][t]{%
  \par\smallskip\noindent\parbox[#1]{.333\textwidth}{\raggedright\texttt{+}#2}%
  \parbox[#1]{.333\textwidth}{\centering#3}%
  \parbox[#1]{.333\textwidth}{\raggedleft\texttt{#4}}\par\smallskip%
}

\begin{document}

\lipsum[2]
\textline[t]{555\,555\,555}{Some Name}{user@some.site.com}
\lipsum[2]

\end{document}

introduzca la descripción de la imagen aquí

Comentarios (3)

La tarea se realiza fácilmente con cajas:

\noindent
\makebox[0pt][l]{+999\,555\,999\,555}%
\makebox[\textwidth][c]{Ben Lee User}%
\makebox[0pt][r]{\texttt{ben.l.user@some.site}}

Esto no comprueba si hay solapamientos, pero la posibilidad de obtener solapamientos es muy pequeña.

Una macro para ello podría ser

\newcommand{\headerline}[3]{%
  \par\medskip\noindent
  \makebox[0pt][l]{#1}%
  \makebox[\textwidth][c]{#2}%
  \makebox[0pt][r]{\texttt{#3}}\par\medskip}

para ser usada como

\headerline{+999\,555\,999\,555}{Ben Lee User}{ben.l.user@some.site}

Una solución más eficiente (y más oscura)

\newcommand{\headerline}[3]{%
\par\medskip\noindent
\makebox[\textwidth][s]{\rlap{#1}\hfill#2\hfill\llap{\texttt{#3}}}%
\par\medskip}
Comentarios (6)
Left \hfill Center \hfill Right
Comentarios (3)