\small \Wider[5em]{ \begin{tikzpicture}[>=stealth, thick, black!50, text=black, every new ->/.style={shorten >=1pt}, hv path/.style={to path={-| (\tikztotarget)}}, graphs/every graph/.style={edges=rounded corners}] %% This white line is only added to fix the vertical position of the %% figure so it doesn't change as we add more boxes. \draw [white] (0,-4.2) -- (0,4.2); \draw [white] (-0.5,0) -- (12,0); \graph[grow right sep, simple] { { [nodes={yshift=7mm}] soft/Software [gbox] -> build/Build [bbox], hard/Hardware/data [gbox, yshift=-0.5cm] -- p1 [coordinate, xshift=2cm, yshift=-0.5cm] } -- [hv path] p2 [coordinate] -> srun/Run software on data [bbox] -> paper/Paper [bbox] }; \ifdefined\paperfinal \node (happy) [inner sep=0pt, below=of paper, yshift=+8mm] {\includegraphics[width=2cm]{img/happy-question.jpg}}; \node (happyurl) [below=of happy, xshift=-9.5mm, yshift=+1cm] {\tiny \url{https://heywhatwhatdidyousay.wordpress.com}}; \node (qurl) [below=of happyurl, xshift=10.5mm, yshift=+1.2cm] {\tiny \url{http://pngimages.net}}; \else \ifdefined\paperinit \node (happy) [inner sep=0pt, below=of paper, yshift=+8mm] {\includegraphics[width=2cm]{img/happy.jpg}}; \node (happyurl) [below=of happy, xshift=-9.5mm, yshift=+1cm] {\tiny \url{https://heywhatwhatdidyousay.wordpress.com}}; \fi \fi %% Software... \ifdefined\sver \node (sver) [rbox, above=of soft, yshift=-8mm, opacity=\nodeopacity] {What version?}; \fi \ifdefined\srep \node (srep) [rbox, above=of sver, yshift=-8mm, opacity=\nodeopacity] {Repository?}; \fi %% Hardware... \ifdefined\db \node (db) [rbox, below=of hard, yshift=+8mm, opacity=\nodeopacity] {Data base?}; \fi \ifdefined\calib \node (calib) [rbox, below=of db, yshift=+8mm, opacity=\nodeopacity] {Calibration/version?}; \fi \ifdefined\corr \node (corr) [rbox, below=of calib, yshift=+8mm, opacity=\nodeopacity] {Integrity?}; \fi %% Build \ifdefined\dver \node (dver) [rbox, above=of build, yshift=-8mm, opacity=\nodeopacity] {Dependencies?}; \fi \ifdefined\ddver \node (ddver) [rbox, above=of dver, yshift=-8mm, opacity=\nodeopacity] {Dep. versions?}; \fi \ifdefined\confopt \node (confopt) [rbox, above=of ddver, yshift=-8mm, opacity=\nodeopacity] {Config options?}; \fi \ifdefined\confenv \node (confenv) [rbox, above=of confopt, yshift=-8mm, opacity=\nodeopacity] {Config environment?}; \fi %% Run software ... \ifdefined\runord \node (runord) [rbox, above=of srun, yshift=-8mm, opacity=\nodeopacity] {What order?}; \fi \ifdefined\runopt \node (runopt) [rbox, above=of runord, yshift=-8mm, opacity=\nodeopacity] {Runtime options?}; \fi \ifdefined\humanerr \node (humanerr) [rbox, above=of runopt, yshift=-8mm, opacity=\nodeopacity] {Human error?}; \fi \ifdefined\depupdate \node (depupdate) [rbox, below=of srun, yshift=+8mm, opacity=\nodeopacity] {Environment update?}; \fi \ifdefined\coauth \node (coaut) [rbox, below=of depupdate, yshift=+8mm, opacity=\nodeopacity] {In sync with coauthors?}; \fi %% Paper ... \ifdefined\varsinpaper \node (varsinpaper) [rbox, above=of paper, xshift=-1mm, yshift=-8mm, opacity=1] {Sync with analysis?}; \fi \ifdefined\recordinfo \node (recordinfo) [rbox, above=of varsinpaper, yshift=-8mm, opacity=\nodeopacity] {Report this info?}; \fi \ifdefined\softcite \node (softcite) [rbox, above=of recordinfo, yshift=-8mm, opacity=\nodeopacity] {Cited software?}; \fi \ifdefined\prevchange \node (prevchange) [rbox, above=of softcite, yshift=-8mm, opacity=\nodeopacity] {History recorded?}; \fi \ifdefined\gitlogo \node [inner sep=0pt, opacity=0.5] at (5.5,0) {\includegraphics[width=10cm]{img/git.png}}; \fi \end{tikzpicture} }