所以基本上我想要实现的是如下目标......
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
设置制表位而不生成文本。工作原理与此类似,只是\\
它会丢弃当前行而不是为其生成输出。该行中任何命令的效果\=
仍然有效。