我想将一些文本在同一行中左对齐/居中对齐/右对齐。例如,我想将我的电话号码放在左侧,将我的名字放在中间,将我的电子邮件放在右侧,我该怎么做?
答案1
使用\hfill
不一定会导致中间文本居中,如下例所示。如果您想以中间文本真正居中的方式放置文本,我建议使用\parbox
es,如示例所示(我使用该\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