对齐文本列

对齐文本列

所以基本上我想要实现的是如下目标......

Mobile      :  +12 111 111 111      Email     :  [email protected]
Phone       :  +12 111 111          Website   :  http://www.something.com
Nationality :  Somenationality      Birthdate :  xx/xx/xxxx

将每行的文本块放在一起。我真的不知道如何解决这个问题。诀窍是将它们放在:一行中,例如,保持移动信息和电子邮件标题之间的间距相同,并为三行保留该间距。什么是正确的解决方案,可以将它们完美地结合在一起......

到目前为止,我是这样解决的,但效果并不是很好

  \begin{center}
    {\LARGE \textbf{My Name}}\\
    \textnormal{xx, rue du XX \ \ X-XXXX XXXXXX} \\[3mm]
    \par\noindent\parbox{1.3cm}{Mobile}\parbox{0.2cm}{:} \parbox{3.5cm}{+122 111 111 111} \hspace{0.01cm} \parbox{1.3cm}{Email}   \parbox{0.2cm}{:} \parbox{3.5cm}{[email protected]}\\
    \par\noindent\parbox{1.3cm}{Phone} \parbox{0.2cm}{:} \parbox{3.5cm}{+122 111 111}     \hspace{0.01cm} \parbox{1.3cm}{Website} \parbox{0.2cm}{:} \parbox{3.5cm}{http://www.something.com}\\
    \par\noindent\parbox{1.3cm}{Nat.}  \parbox{0.2cm}{:} \parbox{3.5cm}{Somenationality}    \hspace{0.01cm} \parbox{1.3cm}{Birthdate}\parbox{0.2cm}{:} \parbox{3.5cm}{xx.xx.xxxx}\\
  \end{center}

答案1

我建议使用tabular如下环境。这@{}将删除列间距。

在此处输入图片描述

\documentclass[border=5pt]{standalone}
\begin{document}
\noindent
\begin{tabular}{l@{}cll@{}cl}
Mobile     &:&+12 111 111 111 &Email    &:&[email protected]\\
Phone      &:&+12 111 111     &Website  &:&http://www.something.com\\
Nationality&:&Somenationality &Birthdate&:&xx/xx/xxxx
\end{tabular}
\end{document}

正如@cmhughes 提到的,还有一个tabularx环境可以帮助列拉伸,但对于这个特定问题来说这可能有点过度了。


或者,您可以使用与您正在做的事情类似的方法,但使用\makebox不同的方法。在这里,我\LeftBox在左侧为文本定义了一个,\RightBox在右侧为文本定义了一个单独的命令,每个命令都带有两个参数。当然,您可以只定义一个带有四个参数的命令,但这应该可以让您入门:

\documentclass[border=5pt]{standalone}
\begin{document}
\newcommand{\ColonSep}{\makebox[0.2cm][l]{:}}%
\newcommand{\LeftBox}[2]{\par\noindent\makebox[1.3cm][l]{#1}\ColonSep\makebox[3.5cm][l]{#2}}%
\newcommand{\RightBox}[2]{\hspace{0.5cm}\makebox[1.5cm][l]{#1}\ColonSep\makebox[3.5cm][l]{#2}}%
  \begin{center}
    {\LARGE \textbf{My Name}}\\
    \textnormal{xx, rue du XX \ \ X-XXXX XXXXXX} \\[3mm]
        \LeftBox{Mobile}{+122 111 111 111}  \RightBox{Email}{[email protected]}\\
        \LeftBox{Phone}{+122 111 111}       \RightBox{Website}{http://www.something.com}\\
        \LeftBox{Nat.}{Somenationality}     \RightBox{Birthdate}{xx.xx.xxxx}\\
  \end{center}
\end{document}

答案2

您还可以使用tabbing环境:

\documentclass{article}

\begin{document}

\begin{tabbing}
\=Nationality\=:\quad\=+12 111 111 111\hspace{4em}\=Birthdate\=:\quad\[email protected] \kill % set the tabbings
\>Mobile          \>:  \>+12 111 111 111   \> Email         \>:  \> [email protected] \\ 
\>Phone            \>:  \>+12 111 111            \>Website   \>:  \>http://www.something.com \\
\>Nationality \>:  \>Somenationality \>Birthdate \>:  \>xx/xx/xxxx
\end{tabbing}

\end{document}

在此处输入图片描述

所用到的基本命令简单说明:

  • \=在当前位置设置制表位。
  • \>前进到下一个制表位。
  • \kill设置制表位而不生成文本。工作原理与此类似,只是\\它会丢弃当前行而不是为其生成输出。该行中任何命令的效果\=仍然有效。

相关内容