按照良好的排版,显示此类列表的适当环境或 LaTeX 代码是什么?
姓名:
电话:
电子邮件:
网站:
对于这种情况,描述环境似乎总是不太合适,尤其是当我在文档中出现许多这样的列表时。是否有针对此类信息推荐的特殊环境?
请注意,我指的不一定是出现在前言中的数据。这可以是文档中的信息,而不一定是关于文档作者的信息。
答案1
正如评论中提到的,最简单的方法是使用类似于以下解决方案的表格环境对齐文本列并使用 tabular 对齐列,或者环境tabbing
。
如果数据很多,您应该考虑使用多列。
\documentclass[border=5pt]{standalone}
\begin{document}
\noindent
\begin{tabular}{l@{\thinspace}l}
Name: &Village\\
Telephone: &+12 111 111\\
E-mail: &[email protected]\\
Web site: &http://tex.stackexchange.com
\end{tabular}
\bigskip
If there is a lot of data consider two columns:
\medskip
\noindent
\begin{tabular}{l@{\thinspace}ll@{\thinspace}l}
Name: &Village &Email: &[email protected]\\
Mobile: &+12 111 111 111 &Website: &http://tex.stackexchange.com\\
Phone: &+12 111 111 &Birthdate:&04/01/1977
\end{tabular}
\end{document}
根据@Werner的评论,将其定义为宏很有用,这样格式才能保持一致。如果您在文档中多次排版,这一点尤其重要。我也\url
按照@YiannisLazarides的建议在这里使用了它,以及包裹hyperref
提供可点击的链接。您也可以直接使用包裹url
。
此版本还使用包裹collcell
提供灵活性,可以选择冒号是使用A
列类型对齐,还是使用列类型放在左侧L
。如果您只有 4 个条目,并且能够在适当的位置手动将冒号包含:
在\UserInfo
宏中,那么这可能有点过头了。但是,如果条目列表越来越长,这种方法可以让您轻松地在两种格式之间切换,如果您以后决定更喜欢其中一种版本而不是另一种版本。
\documentclass{article}
\usepackage{hyperref}
\usepackage{collcell}
\newcommand{\AddColon}[1]{#1:}%
\newcolumntype{L}{>{\collectcell\AddColon}{l}<{\endcollectcell}@{\thinspace}}% if want colons on left
\newcolumntype{A}{l@{:\thinspace}}% if want colons aligned
\newcommand{\UserInfo}[5][L]{% #1 can be A=aligned colon, L=left colon
\par\noindent%
\begin{tabular}{#1 l}%
Name \\%
Telephone \\%
E-mail \\%
Web site &\url{#5}%
\end{tabular}%
\ignorespaces\par%
}
\begin{document}
\UserInfo{Village}{+12 111 111}{[email protected]}{http://tex.stackexchange.com}
\bigskip
\UserInfo[A]{Village}{+12 111 111}{[email protected]}{http://tex.stackexchange.com}
\end{document}
答案2
为了展示一些变化,下面是一个键值方法:
\documentclass[a4paper]{article}
\usepackage{keyval,booktabs}
\makeatletter
\def\ui@key#1{\define@key{ui}{#1}{\@namedef{ui@#1}{##1}}}
\ui@key{name}\ui@key{place}\ui@key{phone}\ui@key{mobile}
\ui@key{email}\ui@key{website}\ui@key{style}
\def\ui@style@one{\noindent\begin{tabular}{@{}l@{ }l@{}}
\toprule
\multicolumn{2}{@{}l@{}}{Name: \ui@name} \\
\midrule
Place: & \ui@place \\
Mobile: & \ui@mobile \\
Phone: & \ui@phone \\
E-Mail: & \texttt{\ui@email} \\
Web site:& \texttt{\ui@website} \\
\bottomrule
\end{tabular}}
\def\ui@style@two{\noindent\begin{tabular}{@{}l@{ }l@{\qquad}l@{ }l@{}}
\toprule
\multicolumn{4}{@{}l@{}}{Name: \ui@name} \\
\midrule
Place: & \ui@place & E-Mail: & \texttt{\ui@email} \\
Mobile: & \ui@mobile & Web site: & \texttt{\ui@website} \\
Phone: & \ui@phone & & \\
\bottomrule
\end{tabular}}
\newcommand{\UserInfo}[1]{%
\setkeys{ui}{style=one,name=,place=,mobile=,phone=,email=,website=,#1}%
\@nameuse{ui@style@\ui@style}}
\makeatother
\begin{document}
\UserInfo{%style=one, % default
name=Brutus L. User,
place=Village,
mobile=+12 111 111 111,
phone=+12 111 111,
[email protected],
website=http://tex.stackexchange.com}
\bigskip
\UserInfo{style=two,
name=Brutus L. User,
place=Village,
mobile=+12 111 111 111,
phone=+12 111 111,
[email protected],
website=http://tex.stackexchange.com}
\end{document}
您可以选择一列或两列表格。\ui@key
宏只是为了避免重复类似的定义,例如
\define@key{ui}{name}{\def\ui@name{#1}}