表格内的列表

表格内的列表

我正在使用这个简单的代码来对齐简历上的日期范围:

\section{I'm pretty cool}\begin{tabular}{l l}
2009--present & company 1 \\
2011--2012 & company 2
\end{tabular}

现在看起来像这样:

2009 - present   company 1
2011 - 2012      company 2

但我想在每个条目中添加一个列表,如下所示:

2009 - present   company 1:
                   * editor
2011 - 2012      company 2
                   * judge
                   * jury 
                   * executioner

我该如何实现这一点?我可以将itemize它们放在单独的列中,但在这种情况下,它不起作用tabular,我希望“公司 2”的一部分位于该列中。

答案1

如果在列itemize内使用,则会增加很多不必要的空间。使用正确定义的列类型来做正确的事情。以下内容很久以前由 Donald Arseneau 在 CTT 上发布,用于逐项和枚举单元格。ptabular

编辑:\multicolumn将内容更改为一p列。

\documentclass{article}
\usepackage{array}
\makeatletter
\newcolumntype{e}[1]{%--- Enumerated cells ---
   >{\minipage[t]{\linewidth}%
     \NoHyper%                Hyperref adds a vertical space
     \let\\\tabularnewline
     \enumerate
        \addtolength{\rightskip}{0pt plus 50pt}% for raggedright
        \setlength{\itemsep}{-\parsep}}%
   p{#1}%
   <{\@finalstrut\@arstrutbox\endenumerate
     \endNoHyper
     \endminipage}}

\newcolumntype{i}[1]{%--- Itemized cells ---
   >{\minipage[t]{\linewidth}%
        \let\\\tabularnewline
        \itemize
           \addtolength{\rightskip}{0pt plus 50pt}%
           \setlength{\itemsep}{-\parsep}}%
   p{#1}%
   <{\@finalstrut\@arstrutbox\enditemize\endminipage}}

\AtBeginDocument{%
    \@ifpackageloaded{hyperref}{}%
        {\let\NoHyper\relax\let\endNoHyper\relax}}
\makeatother

\newlength{\pcolwdth}
\begin{document}
\setlength{\pcolwdth}{5cm}% 
\begin{tabular}{li{\pcolwdth}}
2009--present & \multicolumn{1}{p{\pcolwdth}}{company 1} \\
              & \item editor                             \\
2011--2012    & \multicolumn{1}{p{\pcolwdth}}{company 2} \\
              & \item judge
                \item jury
                \item executioner                        \\
\end{tabular}
\end{document}

在此处输入图片描述

答案2

根据您的喜好,您也可以避免使用列表并使用“假列表”环境设置项目:

在此处输入图片描述

\documentclass{article}
\newcommand{\nextitem}{\par\hspace*{\labelsep}\textbullet\hspace*{\labelsep}}
\begin{document}
\thispagestyle{empty}
\begin{tabular}{rp{3in}}
  2009--present & company 1
    \nextitem editor \\
  2011--2012 & company 2
    \nextitem jury
    \nextitem executioner
\end{tabular}
\end{document}

这只适用于第二列设置为paragraph 模式的情况。您也可以使用 -column X(来自tabularx包裹)。

另一个建议是使用moderncv班级。以下是摘录自moderncv模板/示例(还有其他例子):

在此处输入图片描述

答案3

列表环境在列内不起作用l,但在列内可以正常工作p

\documentclass{article}
\usepackage{array}
\begin{document}
\thispagestyle{empty}
\begin{tabular}{l<{\raggedright}p{3in}}
  2009--present & company 1
  \begin{itemize}
  \item editor
  \end{itemize}
  \\
  2011--2012 & company 2
  \begin{itemize}
  \item jury
  \item executioner
  \end{itemize}
\end{tabular}
\end{document}

在此处输入图片描述

答案4

不完全是使用tabular。但是这个解决方案使用了parallel包。

\documentclass{article}
\usepackage{parallel,enumitem}
\setlist{label=*,leftmargin=0.31\textwidth}
\begin{document}
\begin{Parallel}[v]{0.24\textwidth}{0.74\textwidth} % remove [v] if you don't need a vertical line
\ParallelLText{\noindent
2009--present
}
%
\ParallelRText{%
\noindent
Company 1
\begin{enumerate}%[label=*,leftmargin=0.31\textwidth] %defined by \setlist in preamble
  \item{editor}
\end{enumerate}}
\ParallelPar
\bigskip
%---------------------
\ParallelLText{\noindent
2011--2012
}
%
\ParallelRText{%
\noindent
Company 1
\begin{enumerate}%[label=*,leftmargin=0.31\textwidth]
  \item{Judge}
  \item{Jury}
  \item{Executioner}
\end{enumerate}}
\ParallelPar
\bigskip
%---------------------
\end{Parallel}

\end{document}

在此处输入图片描述

相关内容