[Tex/LaTex] How to develop a complex time line


I currently have a resume I've made in Illustrator with a time line of my work with academics on the lower part and jobs on the upper section:

time line constructed in Illustrator

The trouble with it being in Illustrator of course, is having to carefully rearrange everything whenever I update it. I wanted to switch to creating the time line programatically in LaTeX and attempted to use the chronology package

\event[2000]{2004}{\color{blue}Tennesse Technological University}
\event[2005]{2009}{University of Tennessee Chattanooga}

Which does give me a pretty nice time line:

Chronology time line

But it's pretty limited in positioning (I seem to be able to place either top or bottom; not both), label locations, etc.

Does anyone have any suggestions of packages I could use to create a complex time line? Or is this something I'd have to write/design myself?

Best Answer

A possible solution is to use the timeline library from Milestone graphic in TikZ with a few arrangements for having trapezium shapes.

An example:


\usetikzlibrary{timeline,shapes.geometric}% for trapezium shape

% redefinition for having a interval not starting from 1
  \draw[fill,opacity=0.8] (0,0) rectangle (\timelinewidth,\timelineheight);
  \shade[top color=black, bottom color=white,middle color=black!20]
    (0,0) rectangle (\timelinewidth,-\timelineoffset);
  \shade[top color=white, bottom color=black,middle color=black!20]  
    (0,\timelineheight) rectangle (\timelinewidth,\timelineheight+\timelineoffset);

  \foreach \smitem [count=\xi] in {#1}  {\global\let\maxsmitem\xi} 
  \node at (0,0.5\timelineheight)(\timespan-0){\phantom{Week 0}}; 

  \foreach \x[count=\xi] in {#1}{
       \node[text=white]at +(\xi*\position,0.5\timelineheight) (\timespan-\xi) {\timespan\ \x};

% redefinition to remove unfortunate anchor=west option
\node[phase appearance,#1,between week=0 and 1 in 0,] 
 at ($(\timespan-0)!0!(\timespan-1)$){};


\begin{tikzpicture}[timespan={},% empty to not display a label before the year
  between year/.style args={#1 and #2 in #3}{% auxiliary style for years
    initial week=#1,
    end week=#2,
    time point=#3,
  phase appearance/.append style={trapezium},% redefinition of the shape
  above line/.style={% new style for having the trapezium above the timeline
  below line/.style={% new style for having the trapezium below the timeline
    shape border rotate=180,

\timeline{2004,...,2013} % number of years

% put here the phases
\clip (0,-4) rectangle (\timelinewidth,4);% to clip the first trapezium
\initialphase{involvement degree=2cm,phase color=black,right color=black,left color=black!2,below line}
\phase{between year=1 and 2 in 0.7,involvement degree=2.25cm,above line,phase color=cyan!90!blue}
\phase{between year=3 and 4 in 0.5,involvement degree=2cm,below line, phase color=black}
\phase{between week=3 and 4 in 0.6,involvement degree=1cm,above line,phase color=cyan!90!blue}

%% put here the milestones
\addmilestone{at=phase-0.290,direction=-30:1cm,text={Initial meeting},text options={below}}
\addmilestone{at=phase-1.90,direction=60:0.5cm,text={Software Engineer},text options={above}}
\addmilestone{at=phase-2.270,direction=-120:1cm,text={Research},text options={below}}
\addmilestone{at=phase-3.80,direction=120:1cm,text={Need Agreement},text options={above}}


The result:

enter image description here