aboutsummaryrefslogtreecommitdiff
path: root/tex
diff options
context:
space:
mode:
Diffstat (limited to 'tex')
-rw-r--r--tex/src/figure-tools-per-year.tex244
-rw-r--r--tex/src/preamble-pgfplots.tex48
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,