如何在 itemize 环境中创建列?

如何在 itemize 环境中创建列?

我想为简历生成以下语法的列表。

* <Description of Activity> <empty space> <right aligned date>

目前我一直在使用如下形式

\begin{itemize}
\item First Activity \hfill Date 1
\item Second Activity \hfill Date 2
\end{itemize}

只要每个活动不太长,这种方法就有效。如果活动描述太长,日期换行就会很差。我想将活动换行到自己的一列中,这样它就可以换行到下一行,而不会影响日期,本质上会产生以下结果

* This is a really long activity that    Date
  spans multiple lines without
  messing up the dates.

我尝试嵌套表格环境,但没有效果。

答案1

您可以使用小页面,如本 MWE 所示: 在此处输入图片描述

\documentclass{article}
\usepackage{lipsum}
\begin{document}

\begin{itemize}
\item First Activity  ~~ \dotfill ~~ Date 1
\item Second Activity  ~~ \dotfill ~~ Date 2
\item
 \begin{minipage}[t]{8cm}
    This is a really long activity
    that  spans multiple lines without
    messing up the dates.
 \end{minipage} 
                   ~~ \dotfill ~~ Date 3

\item 
 \begin{minipage}[t]{8cm}
    This is a another long activity 
    that spans in more tha one line.
 \end{minipage} 
                    ~~ \dotfill ~~ Date 4

\end{itemize}   
\end{document}

答案2

您可以将内容放在tabularx

在此处输入图片描述

\documentclass{article}
\usepackage{tabularx}% http://ctan.org/pkg/tabularx
\usepackage{lipsum}% http://ctan.org/pkg/lipsum
\begin{document}
\noindent
\begin{tabularx}{\textwidth}{@{\textbullet\quad}X@{\quad}r@{}}
  First activity & Date 1 \\
  Second activity & Date 2 \\
  \lipsum*[2] & Date 3 \\
  Fourth activity & Date 4
\end{tabularx}
\end{document}

为了跨分页符扩展此范围,您可以考虑ltxtable. 这只会破坏完整的细胞。

答案3

我会将其设置为列表,并将日期设置为项目标签的一部分,只是向右偏移。与使用表格或小页面的解决方案不同,使用列表允许在项目中途分页(这可能是一项功能,也可能不是,取决于您想要什么)。

在此处输入图片描述

\documentclass{article}
\makeatletter
\newenvironment{dateitemize}{%
  \ifnum \@itemdepth >\thr@@\@toodeep\else
    \advance\@itemdepth\@ne
    \edef\@itemitem{labelitem\romannumeral\the\@itemdepth}%
    \expandafter
    \list
      \csname\@itemitem\endcsname
      {%
      \advance\rightmargin3cm
      \def\makelabel##1{\hss\llap{\textbullet}\rlap{\hbox to \dimexpr\linewidth+\rightmargin+\itemsep\relax{\hss##1}}}}%
  \fi}{%
 \enditemize}

\makeatother
\begin{document}

\noindent X\dotfill X

\noindent X\dotfill X

\begin{dateitemize}
\item[Date 1] First Activity 
\item[Date 2] Second Activity 
\item[Date 3--Date 4]
    This is a really long activity
    that  spans multiple lines without
    messing up the dates.
\item[Date 4]
    This is a another long activity 
    that spans in more tha one line.

\end{dateitemize}   
\end{document}

相关内容