如何使文本在同一行左对齐、居中对齐、右对齐?

如何使文本在同一行左对齐、居中对齐、右对齐?

我想将一些文本在同一行中左对齐/居中对齐/右对齐。例如,我想将我的电话号码放在左侧,将我的名字放在中间,将我的电子邮件放在右侧,我该怎么做?

答案1

使用\hfill不一定会导致中间文本居中,如下例所示。如果您想以中间文本真正居中的方式放置文本,我建议使用\parboxes,如示例所示(我使用该\lipsum[2]命令生成仅供参考的文本):

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

在此处输入图片描述

如果这个结构要多次使用,最好有一个命令;类似于\textline下面这个例子所说明的定义和使用的命令(其中我还加入了埃格尔\raggedleft关于、\centering和 的建议\raggedright):

\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}{[email protected]}
\lipsum[2]

\end{document}

在此处输入图片描述

答案2

使用盒子可以轻松完成任务:

\noindent
\makebox[0pt][l]{+999\,555\,999\,555}%
\makebox[\textwidth][c]{Ben Lee User}%
\makebox[0pt][r]{\texttt{[email protected]}}

这不会检查重叠,但重叠的机会非常小。

一个宏可能是

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

用作

\headerline{+999\,555\,999\,555}{Ben Lee User}{[email protected]}

更有效(也更隐晦)的解决方案

\newcommand{\headerline}[3]{%
\par\medskip\noindent
\makebox[\textwidth][s]{\rlap{#1}\hfill#2\hfill\llap{\texttt{#3}}}%
\par\medskip}

答案3

Left \hfill Center \hfill Right

答案4


Left \hfill Center \hfill Right
 

结果

使用 \phantom !


\phantom{phantom} \hfill \phantom{phantom} \hfill Right
 

结果


Left \hfill \phantom{phantom} \hfill Right
 

结果

相关内容