CV/infographics/g/timeline.tex
2016-11-01 11:27:19 +01:00

110 lines
3.9 KiB
TeX

%-----------------------------------------------------------------------------------------------------------------------------------------------%
% The MIT License (MIT)
%
% Copyright (c) 2016 Jan Küster
%
% Permission is hereby granted, free of charge, to any person obtaining a copy
% of this software and associated documentation files (the "Software"), to deal
% in the Software without restriction, including without limitation the rights
% to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
% copies of the Software, and to permit persons to whom the Software is
% furnished to do so, subject to the following conditions:
%
% THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
% IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
% FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
% AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
% LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
% OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
% THE SOFTWARE.
%
%-----------------------------------------------------------------------------------------------------------------------------------------------%
% define global counters
\newcounter{yearcount}
\newcounter{leftcount}
% env cvtimeline
%
% creates a vertical cv timeline
%
% param 1: start year
% param 2: end year
% param 3: overall width
%param 4: overall height
\newenvironment{cvtimeline}[4]{
\newcommand{\cvcategory}[2]{
\node[label=\mbox{\colorbox{##1}{\strut\hspace{2pt}}\colorbox{white}{\textcolor{textcol}{##2}}}] at (0,-5) {}; %start year
}
\newcommand{\bxwidth}{4.5}
\newcommand{\bxheight}{2}
% creates a stretched box as cv entry headline followed by two paragraphs about
% the work you did
% param 1: event start month/year
% param 2: event end month/year
% param 3: event name
% param 4: institution (where did you work / study)
% param 5: what was your position
% param 6: color
% param 7: level (position, use minus for left placement)
\newcommand{\cvevent}[7] {
\foreach \monthf/\yearf in {##1} {
\foreach \montht/\yeart in {##2} {
\pgfmathparse{#3/\fullrange*((\yearf-#1)+(\monthf/12))}
\let\startexp\pgfmathresult
\pgfmathparse{#3/\fullrange*((\yeart-#1)+(\montht/12))}
\let\endexp\pgfmathresult
\pgfmathparse{1/(\endexp-\startexp+1)}
\let\lenexp\pgfmathresult
\pgfmathparse{0.5*\endexp+0.5*\startexp}
\let\midexp\pgfmathresult
%\filldraw[fill=##6,draw=none, opacity=0.9] (-0.15-##7,\startexp) rectangle (-0.15-##7-0.5,\endexp);
\draw[draw=##6, line width=1.5pt] (0, \startexp) -- (1,\startexp);
\node[label={[label distance=0]0:\colorbox{##6}{\strut}\colorbox{white}{\textcolor{gray}{##1}\hspace{3pt}\textcolor{textcol}{##3}}}] at (0.5, \startexp) {};
}
\addtocounter{leftcount}{1}
}
}
%--------------------------------------------------------------------------------------
% BEGIN
%--------------------------------------------------------------------------------------
\begin{tikzpicture}
\setcounter{leftcount}{1}
%calc fullrange= number of years
\pgfmathparse{(#2-#1)}
\let\fullrange\pgfmathresult
\draw[draw=textcol,line width=4pt] (0,0) -- (0,#3) ; %the timeline
%for each year put a horizontal line in place
\setcounter{yearcount}{1}
\whiledo{\value{yearcount} < \fullrange}{
\draw[fill=white,draw=textcol, line width=2pt] (0,#3/\fullrange*\value{yearcount}) circle (0.1);
\stepcounter{yearcount}
}
%start year
\filldraw[fill=white!100,draw=textcol,line width=3pt] (0,-0.5) circle (0.5);
\node[label=\textcolor{textcol}{\textbf{\small#1}}] at (0,-0.85) {};
%end year
\filldraw[fill=white!100,draw=textcol,line width=5pt] (0,#3+0.75) circle (0.75);
\node[label=\textcolor{textcol}{\textbf{\large#2}}] at (0,#3+0.42) {};
}%end begin part of newenv
{\end{tikzpicture}}