diff options
Diffstat (limited to 'tex/src')
| -rw-r--r-- | tex/src/figure-tools-per-year.tex | 244 | ||||
| -rw-r--r-- | tex/src/preamble-pgfplots.tex | 48 | 
2 files changed, 261 insertions, 31 deletions
| diff --git a/tex/src/figure-tools-per-year.tex b/tex/src/figure-tools-per-year.tex index f6dc239..738cdad 100644 --- a/tex/src/figure-tools-per-year.tex +++ b/tex/src/figure-tools-per-year.tex @@ -1,34 +1,258 @@ -\begin{tikzpicture}[scale=0.9] -  %% Add the right-side Y axis. +% All macros commented +\newcommand{\paperpdf}{}              %  1 +\newcommand{\papertex}{}              %  2 +\newcommand{\projecttex}{}            %  3 +\newcommand{\verifytex}{}             %  4 +\newcommand{\demoplottex}{}           %  5 +\newcommand{\toolsperyear}{}          %  6 +\newcommand{\tablethree}{}            %  7 +\newcommand{\menkexlsx}{}             %  8 +\newcommand{\inputsconf}{}            %  9 +\newcommand{\downloadtex}{}           % 10 +\newcommand{\formattex}{}             % 11 +\newcommand{\demoyearconf}{}          % 12 +\newcommand{\initializetex}{}         % 13 +\newcommand{\expandingproject}{}      % 14 + + + +\begin{tikzpicture} + +  %% These white lines are only relevant when we want to add boxes in +  %% multiple figures (for example to build slides). They are used to fix +  %% the vertical position of the boxs in the figure so it doesn't change +  %% as we add more boxes. +  \draw [white] (-9cm,0) -- (9cm,0); +  \draw [white] (0,-5cm) -- (0,4cm); + +  %% Right-side Y axis (red, logarithmic histogram). This should be created +  %% under the line, because the line doesn't interfere with interpretting +  %% the histogram, but the inverse is not true.    \begin{axis}[        ymode=log, -      width=\linewidth, -      height=0.3\linewidth, +      width=5cm, +      height=5cm, +      axis on top,        axis x line=none,        axis y line*=right, +      at={(-7.4cm,-1.8cm)},        enlarge x limits = false, -      ylabel=Num. papers (log-scale), +      ylabel={Num. papers (red, log-scale)},        max space between ticks=20,      ] -    \addplot+ [ybar, mark=none, fill=red!50!white, red, opacity=0.25] +    \addplot+ [ybar, mark=none, fill=red!40!white, red!40!white]      table [x index=0, y index=2] {tex/build/to-publish/tools-per-year.txt};    \end{axis} +  %% Left-side Y axis (green, linear/percent line).    \begin{axis}[        ymin=0,        ymax=100, -      width=\linewidth, -      height=0.3\linewidth, +      width=5cm, +      height=5cm,        xlabel={Year}, -      ylabel={Frac. papers with tools},        axis y line*=left, +      at={(-7.4cm,-1.8cm)},        enlarge x limits = false, +      ylabel={Frac. papers with tools (green)},        yticklabel=\pgfmathprintnumber{\tick}\,\%,        x tick label style={/pgf/number format/1000 sep=},      ]      %% Linear plot, showing the number of papers mentioning tools. -    \addplot+ [mark=none, very thick, green!60!black] +    \addplot+ [mark=none, ultra thick, green!60!black]      table {tex/build/to-publish/tools-per-year.txt};    \end{axis} + +  %% Use small fonts for the rest. +  \scriptsize + +  %% top-make.mk +  \node [rectangle, +         very thick, +         text centered, +         font=\ttfamily, +         text width=2.8cm, +         anchor=north west, +         at={(-2.6cm,3.5cm)}, +         minimum width=11.6cm, +         minimum height=7.25cm, +         draw=green!50!black!50, +         fill=black!10!green!2!white, +         label={[shift={(0,-5mm)}]\texttt{top-make.mk}}] {}; + +  %% verify.mk +  \node [at={(-0.7cm,-2.9cm)}, +         thick, +         rectangle, +         text centered, +         font=\ttfamily, +         text width=2.45cm, +         minimum width=3.5cm, +         minimum height=1.3cm, +         draw=green!50!black!50, +         fill=black!10!green!12!white, +         label={[shift={(1cm,-5mm)}]\texttt{verify.mk}}] {}; + +  %% Paper.mk +  \node [at={(5.35cm,-2.9cm)}, +         thick, +         rectangle, +         text centered, +         text width=2.8cm, +         minimum width=7cm, +         minimum height=1.3cm, +         draw=green!50!black!50, +         fill=black!10!green!12!white, +         font=\ttfamily, +         label={[shift={(0,-5mm)}]\texttt{paper.mk}}] {}; + +  %% Work-horse Makefiles, the X axis value of the files is the same. The Y +  %% axis values range like this: +  %%      2.1cm +  %%      1.3cm +  %%      0.5cm +  %%     -0.4cm +  %%     -1.3cm +  \node [node-makefile, at={(-1.4cm,3cm)}, +        label={[shift={(0,-5mm)}]\texttt{initialize.mk}}] {}; +  \node [node-makefile, at={(0.9cm,3cm)}, +        label={[shift={(0,-5mm)}]\texttt{download.mk}}] {}; +  \node [node-makefile, at={(3.2cm,3cm)}, +        label={[shift={(0,-5mm)}]\texttt{format.mk}}] {}; +  \node [node-makefile, at={(5.5cm,3cm)}, +        label={[shift={(0,-5mm)}]\texttt{demo-plot.mk}}] {}; + +  %% paper.pdf +  \ifdefined\paperpdf +  \node (paperpdf) [node-terminal, at={(7.8cm,-3cm)}] {paper.pdf}; +  \fi + +  %% paper.tex and references.tex +  \ifdefined\papertex +  \node (reftex) [node-nonterminal, at={(5.5cm,-3.9cm)}] {references.tex}; +  \node (papertex) [node-nonterminal, at={(7.8cm,-3.9cm)}] {paper.tex}; +  \node (papertex-north) [node-point, at={(7.8cm,-3.65cm)}] {}; +  \draw [rounded corners, black!50, line width=1.5pt] (reftex) |- (papertex-north); +  \draw [->, black!50, line width=1.5pt] (papertex) -- (paperpdf); +  \fi + +  %% project.tex +  \ifdefined\projecttex +  \node (projecttex) [node-terminal, at={(3.2cm,-3cm)}] {project.tex}; +  \draw [->, black!50, line width=1.5pt] (projecttex) -- (paperpdf); +  \fi + +  %% verify.tex +  \ifdefined\verifytex +  \node (verifytex) [node-terminal, at={(-1.4cm,-3cm)}] {verify.tex}; +  \draw [->, black!50, line width=1.5pt] (verifytex) -- (projecttex); +  \fi + +  %% demo-plot.tex +  \ifdefined\demoplottex +  \node (initialize-south) [node-point, at={(-1.4cm,-2cm)}] {}; +  \node (verifytop) [node-point, at={(-1.4cm,-2.75cm)}] {}; +  \node (dptex) [node-terminal, at={(5.5cm,-1.3cm)}] {demo-plot.tex}; +  \draw [rounded corners, ->, black!50, line width=1.5pt] +        (dptex) |- (initialize-south) |- (verifytop); +  \fi + +  %% tools-per-year.txt +  \ifdefined\toolsperyear +  \node (tpyear) [node-terminal, at={(5.5cm,-0.4cm)}] {tools-per-\\year.txt}; +  \draw [->, black!50, line width=1.5pt] (tpyear) -- (dptex); +  \fi + +  %% table-3.txt +  \ifdefined\tablethree +  \node (tabthree) [node-terminal, at={(3.2cm,0.5cm)}] {table-3.txt}; +  \draw [rounded corners, ->, black!50, line width=1.5pt] (tabthree) |- (tpyear); +  \fi + +  %% menkexlsx +  \ifdefined\menkexlsx +  \node (xlsx) [node-terminal, at={(0.9cm,1.3cm)}] {menke20.xlsx}; +  \draw [->, rounded corners, black!50, line width=1.5pt] (xlsx) |- (tabthree); +  \fi + +  %% INPUTS.conf +  \ifdefined\inputsconf +  \node (INPUTS) [node-nonterminal, at={(0.9cm,4cm)}] {INPUTS.conf}; +  \node (xlsx-west) [node-point, at={(-0.25cm,1.37cm)}] {}; +  \draw [->,rounded corners, black!50, line width=1.5pt] +        (INPUTS.west) -| (xlsx-west) |- (xlsx); +  \fi + +  %% download.tex +  \ifdefined\downloadtex +  \node (downloadtex) [node-terminal, at={(0.9cm,-1.3cm)}] {download.tex}; +  \node (downloadtex-west) [node-point, at={(-0.25cm,-1.25cm)}] {}; +  \draw [->,rounded corners, black!50, line width=1.5pt] +        (INPUTS.west) -| (downloadtex-west) |- (downloadtex); +  \draw [rounded corners, -, black!50, line width=1.5pt] +        (downloadtex) |- (initialize-south); +  \fi + +  %% format.tex +  \ifdefined\formattex +  \node (fmttex) [node-terminal, at={(3.2cm,-1.3cm)}] {format.tex}; +  \draw [->, black!50, line width=1.5pt] (tabthree) -- (fmttex); +  \draw [rounded corners, -, black!50, line width=1.5pt] +        (fmttex) |- (initialize-south); +  \fi + +  %% demo-year.conf +  \ifdefined\demoyearconf +  \node (dyearconf) [node-nonterminal, at={(5.5cm,4cm)}] {demo-year.conf}; +  \node (dptex-west) [node-point, at={(4.35cm,-1.25cm)}] {}; +  \draw [->,rounded corners, black!50, line width=1.5pt] +        (dyearconf.west) -| (dptex-west) |- (dptex); +  \fi + +  %% Initialize.tex +  \ifdefined\initializetex +  \node (initializetex) [node-terminal, at={(-1.4cm,-1.3cm)}] {initialize.tex}; +  \draw [->, black!50, line width=1.5pt] (initializetex) -- (verifytex); +  \node [anchor=west, at={(-2.4cm,1.5cm)}] {Basic project info}; +  \node [anchor=west, at={(-2.4cm,1.2cm)}] {(e.g., Git commit).}; +  \node [anchor=west, at={(-2.4cm,0.5cm)}] {Also defines}; +  \node [anchor=west, at={(-2.4cm,0.2cm)}] {project structure}; +  \node [anchor=west, at={(-2.4cm,-0.1cm)}] {(for \texttt{*.mk} files).}; +  \fi + +  %% Expanding project +  \ifdefined\expandingproject + +    %% The Makefile. +    \node [node-makefile, dotted, at={(7.8cm,3cm)}, +          label={[shift={(0,-5mm)}]\texttt{next-step.mk}}] {}; + +    %% next-step.tex +    \node [dotted] (a3tex) [node-terminal, at={(7.8cm,-1.3cm)}] {next-step.tex}; +    \draw [dotted, rounded corners, -, black!50, line width=1.4pt] +          (a3tex) |- (initialize-south); + +    % out-3a.dat and out-3b.dat +    \node [dotted] (out3a) [node-terminal, at={(7.8cm,2.1cm)}] {out-a.dat}; +    \node [dotted] (out3b) [node-terminal, at={(7.8cm,0.5cm)}] {out-b.dat}; +    \node (a3tex-east) [node-point, at={(8.93cm,-0.8cm)}] {}; +    \draw [dotted, ->, rounded corners, black!50, line width=1.5pt] +          (out3a.east) -| (a3tex-east) |- (a3tex); +    \draw [dotted, ->, black!50, line width=1.5pt] (out3b) -- (a3tex); + +    %% demo-out.dat +    \node [dotted] (dout) [node-terminal, at={(5.5cm,1.3cm)}] {demo-out.dat}; +    \draw [dotted, rounded corners, ->, black!50, line width=1.5pt] (dout.south) |- (out3b); + +    %% links +    \node (dout-west) [node-point, at={(5cm,1.3cm)}] {}; +    \draw [dotted, ->, black!50, line width=1.5pt] (xlsx) -- (dout); +    \node [opacity=0.7] (out3a-west) [node-point, at={(6.65cm,2.1cm)}] {}; +    \draw [dotted, ->, rounded corners, black!50, line width=1.5pt] (xlsx) |- (out3a); +    \node [dotted] (a3conf1) [node-nonterminal, at={(7.8cm,4cm)}]  {param.conf}; +    \draw [dotted, rounded corners, black!50, line width=1.5pt] +          (a3conf1.west) -| (out3a-west) |- (out3a); +  \fi +  \end{tikzpicture} diff --git a/tex/src/preamble-pgfplots.tex b/tex/src/preamble-pgfplots.tex index 05e73b7..0c0485c 100644 --- a/tex/src/preamble-pgfplots.tex +++ b/tex/src/preamble-pgfplots.tex @@ -126,29 +126,45 @@  %% Nodes in demo graphs -\tikzset{node-terminal/.style={ + +%% sub-Makefiles. +\tikzset{node-makefile/.style={ +  thick, +  rectangle, +  anchor=north, +  minimum height=4.7cm, +  minimum width=2.1cm, +  draw=green!50!black!50, +  fill=black!10!green!12!white}} + +%% Input files (green, sharp-edged boxes). +\tikzset{node-nonterminal/.style={    rectangle,    very thick, -  draw=blue!50, +  anchor=north,    text centered,    top color=white, -  minimum size=6mm, -  text width=2.1cm, -  rounded corners=3mm, -  bottom color=blue!20, +  text width=1.7cm, +  minimum height=4mm, +  draw=green!50!black!50, +  bottom color=green!80!black!50,    font=\ttfamily}} -\tikzset{node-nonterminal/.style={ +\tikzset{node-terminal/.style={    rectangle,    very thick, +  draw=blue!50,    text centered,    top color=white, -  text width=2.1cm, -  minimum size=6mm, -  draw=green!50!black!50, -  bottom color=green!80!black!50, +  text width=1.7cm, +  minimum height=4mm, +  rounded corners=2mm, +  bottom color=blue!20,    font=\ttfamily}} + +%%%%%%%%%%%%%%%%%%% +  \tikzset{node-nonterminal-thin/.style={    rectangle,    thick, @@ -160,16 +176,6 @@    bottom color=green!80!black!50,    font=\ttfamily\scriptsize}} -\tikzset{node-makefile/.style={ -  thick, -  rectangle, -  anchor=south, -  minimum width=2.6cm, -  minimum height=5cm, -  draw=green!50!black!50, -  fill=black!10!green!12!white, -}} -  \tikzset{node-point/.style={    circle,    black!50, | 
