# How do I 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:

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

\documentclass{article}
\usepackage{chronology}
\begin{document}
\begin{chronology}*[3]{2000}{2014}{10cm}[10cm]
\event[2000]{2004}{\color{blue}Tennesse Technological University}
\event[2005]{2009}{University of Tennessee Chattanooga}
\end{chronology}
\end{document}


Which does give me a pretty nice 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?

-
You could try pure TikZ with the help of \nodes and \draws. –  Malipivo Jun 4 at 5:40
–  Steven B. Segletes Jun 4 at 10:11
Just out of interest: does the steepness of the slopes of the trapezoids have any meaning or are they just design features? –  Benedikt Bauer Jun 4 at 17:01

## 3 Answers

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

An example:

\documentclass[border=10pt]{standalone}

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

% redefinition for having a interval not starting from 1
\renewcommand{\timeline}[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}
\pgfmathsetmacro\position{\timelinewidth/(\maxsmitem+1)}
\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
\renewcommand{\initialphase}[1]{
\node[phase appearance,#1,between week=0 and 1 in 0,]
(phase-\theinvolv)
at ($(\timespan-0)!0!(\timespan-1)$){};
\setcounter{involv}{0}
}

\begin{document}

\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
anchor=south,
yshift=2\timelineheight,
},
below line/.style={% new style for having the trapezium below the timeline
anchor=north,
shape border rotate=180,
yshift=-2\timelineheight,
}
]

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

% put here the phases
\begin{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}
\end{phases}

%% 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}}
\end{tikzpicture}

\end{document}


The result:

-
In order to compile, download the code of the library and put it in your working directory. For the particular case, I'm not completely sure that using the trapezium shape is really the best choice. –  Claudio Fiandrino Jun 4 at 6:01
Is it possible to use months instead of years? I would like to have August, September, October, ..., July?. Thank you –  petobens Jul 18 at 15:58
@petobens: yes, it is possible, but requires a little patch as in current form there's no support. I will provide you the code soon. –  Claudio Fiandrino Jul 18 at 16:44
Thank you! If you want I can open a new question, or I you prefer to update this one, just let me know. –  petobens Jul 18 at 17:05
@petobens: Indeed, if you can cook up a question it would be better. –  Claudio Fiandrino Jul 19 at 8:48

Another way to save manual rearrangement would be to use a tool specifically made for this purpose, like http://vizualize.me/.

(I am not certain they (still?) offer this double-edged timeline functionality, because it isn't used in the example CV, even though it's in the thumbnail:

)

-

The package chronosys gives you a result quite similar to chronology but I find it more customizable. Here is a example:

\documentclass[10pt]{article}
\usepackage[utf8]{inputenc}
\usepackage{chronosys}
\usepackage[paperwidth=34cm, paperheight=10cm]{geometry}%taille du document

\definecolor{blue}{HTML}{84CECC}
\definecolor{gr}{HTML}{375D81}
%
%
%
\begin{document}
%---------------------timeline----------------%
\startchronology[align=left, startyear=1999,stopyear=2013, height=0pt, startdate=false, stopdate=false, dateselevation=0pt, arrow=false, box=true]
%
\chronograduation[event][dateselevation=0pt]{1}
%---------------------periods----------------%
\chronoperiode[textstyle=\raggedleft\colorbox{gr!50}, color=gr, startdate=false, bottomdepth=0pt, topheight=8pt, textdepth=-25pt,dateselevation=16pt, stopdate=false]{2005}{2009}{University of Tennessee Chattanooga}
%
\chronoperiode[textstyle=\colorbox{blue!50}, color=blue, startdate=false, bottomdepth=8pt, topheight=16pt, textdepth=-25pt, dateselevation=12pt, stopdate=false]{2000}{2004}{Tennesse Technological University}
%
\stopchronology
\end{document}


Obtaining the following:

-
Welcome to TeX.SX! I added a missing backslash and also switched to the article class, because of tex.stackexchange.com/questions/42114/… (If you feel that change was unnecessary, you are of course free to change back.) –  Torbjørn T. Jun 11 at 10:20
@Torbjorn Thanks for the welcoming and the edit! –  Luc M Jun 11 at 19:46