aboutsummaryrefslogtreecommitdiff
path: root/tex
diff options
context:
space:
mode:
authorMohammad Akhlaghi <mohammad@akhlaghi.org>2020-01-20 19:45:24 +0000
committerMohammad Akhlaghi <mohammad@akhlaghi.org>2020-01-20 20:22:10 +0000
commit2ed0c82eff6af8aecd34b3e697b0e392ab129cd3 (patch)
treeea5e1cc7855c978550724d2c8a9211c3d0e73498 /tex
parent01dd812b7b828982b7d36e2967f0d9f558780e78 (diff)
New rendering of the file architecture plot
Until now the file architecture plot at the directories ontop of the top-level files. This made it hard to visually identify the top-level files. They are not placed ontop of the sub-directories and some space is added to highlight the files in the top-level directory and those in the subdirectories. Two other changes were made: - The symbolic links created in the top source directory are also shown. - The coding of this figure was made much more elegant by defining a PGFPlots node class and just changing the things that are direrent between each directory.
Diffstat (limited to 'tex')
-rw-r--r--tex/src/figure-file-architecture.tex290
-rw-r--r--tex/src/preamble-pgfplots.tex11
2 files changed, 108 insertions, 193 deletions
diff --git a/tex/src/figure-file-architecture.tex b/tex/src/figure-file-architecture.tex
index 3a7b760..5c00e6e 100644
--- a/tex/src/figure-file-architecture.tex
+++ b/tex/src/figure-file-architecture.tex
@@ -7,217 +7,121 @@
%% Use small fonts
\footnotesize
- %% project
- \node [at={(0,4cm)}, anchor=north,
- rectangle,
- very thick,
- text centered,
- font=\ttfamily,
- minimum width=15cm,
- minimum height=7.5cm,
- draw=green!50!black!50,
- fill=black!10!green!2!white,
- label={[shift={(0,-5mm)}]\texttt{top-project-directory/}}] {};
- %% Its files
- \node [node-nonterminal-thin, at={(-6.0cm,-3cm)}] {COPYING};
- \node [node-nonterminal-thin, at={(-3.5cm,-3cm)}] {paper.tex};
- \node [node-nonterminal-thin, at={(-1.0cm,-3cm)}] {project};
- \node [node-nonterminal-thin, at={(+1.5cm,-3cm)}] {README.md};
- \node [node-nonterminal-thin, at={(+4.25cm,-3cm)},
+ %% project/
+ \node [dirbox, at={(0,4cm)}, minimum width=15cm, minimum height=9cm,
+ label={[shift={(0,-5mm)}]\texttt{project/}}] {};
+ \node [node-nonterminal-thin, at={(-6.0cm,3.3cm)}] {COPYING};
+ \node [node-nonterminal-thin, at={(-3.5cm,3.3cm)}] {paper.tex};
+ \node [node-nonterminal-thin, at={(-1.0cm,3.3cm)}] {project};
+ \node [node-nonterminal-thin, at={(+1.5cm,3.3cm)}] {README.md};
+ \node [node-nonterminal-thin, at={(+4.25cm,3.3cm)},
text width=2.5cm, text depth=-3pt] {README-hacking.md};
- %% reproduce
- \node [at={(-1.4cm,3.5cm)}, anchor=north,
- rectangle,
- very thick,
- text centered,
- font=\ttfamily,
- minimum height=6cm,
- minimum width=11.9cm,
- draw=green!50!black!50,
- fill=black!10!green!2!white,
- label={[shift={(0,-5mm)}]\texttt{reproduce/}}] {};
-
- %% reproduce/software
- \node [at={(-4.35cm,3cm)}, anchor=north,
- rectangle,
- very thick,
- text centered,
- font=\ttfamily,
- minimum height=5.3cm,
- minimum width=5.7cm,
- draw=green!50!black!50,
- fill=black!10!green!2!white,
- label={[shift={(0,-5mm)}]\texttt{software/}}] {};
-
- %% reproduce/analysis
- \node [at={(1.55cm,3cm)}, anchor=north,
- rectangle,
- very thick,
- text centered,
- font=\ttfamily,
- minimum height=5.3cm,
- minimum width=5.7cm,
- draw=green!50!black!50,
- fill=black!10!green!2!white,
- label={[shift={(0,-5mm)}]\texttt{analysis/}}] {};
+ %% reproduce/
+ \node [dirbox, at={(-1.4cm,2.6cm)}, minimum width=11.9cm, minimum height=6cm,
+ label={[shift={(0,-5mm)}]\texttt{reproduce/}}] {};
- %% reproduce/software/config
- \node [at={(-5.75cm,2.5cm)}, anchor=north,
- rectangle,
- very thick,
- text centered,
- font=\ttfamily,
- minimum height=2.1cm,
- minimum width=2.6cm,
- draw=green!50!black!50,
- fill=black!10!green!2!white,
- label={[shift={(0,-5mm)}]\texttt{config/}}] {};
- %% Its files
- \node [node-nonterminal-thin, at={(-5.75cm,1.8cm)}] {LOCAL.conf.in};
- \node [node-nonterminal-thin, at={(-5.75cm,1.3cm)}] {versions.conf};
- \node [node-nonterminal-thin, at={(-5.75cm,0.8cm)}] {checksums.conf};
+ %% reproduce/software/
+ \node [dirbox, at={(-4.35cm,2.1cm)}, minimum width=5.7cm, minimum height=5.3cm,
+ label={[shift={(0,-5mm)}]\texttt{software/}}] {};
+ %% reproduce/software/config
+ \node [dirbox, at={(-5.75cm,1.5cm)}, minimum width=2.6cm, minimum height=2.1cm,
+ label={[shift={(0,-5mm)}]\texttt{config/}}] {};
+ \node [node-nonterminal-thin, at={(-5.75cm,0.8cm)}] {LOCAL.conf.in};
+ \node [node-nonterminal-thin, at={(-5.75cm,0.3cm)}] {versions.conf};
+ \node [node-nonterminal-thin, at={(-5.75cm,-0.2cm)}] {checksums.conf};
%% reproduce/software/make
- \node [at={(-2.95cm,2.5cm)}, anchor=north,
- rectangle,
- very thick,
- text centered,
- font=\ttfamily,
- minimum height=2.1cm,
- minimum width=2.6cm,
- draw=green!50!black!50,
- fill=black!10!green!2!white,
- label={[shift={(0,-5mm)}]\texttt{make/}}] {};
- %% Its files
- \node [node-nonterminal-thin, at={(-2.95cm,1.8cm)}] {basic.mk};
- \node [node-nonterminal-thin, at={(-2.95cm,1.3cm)}] {high-level.mk};
- \node [node-nonterminal-thin, at={(-2.95cm,0.8cm)}] {python.mk};
+ \node [dirbox, at={(-2.95cm,1.5cm)}, minimum width=2.6cm, minimum height=2.1cm,
+ label={[shift={(0,-5mm)}]\texttt{make/}}] {};
+ \node [node-nonterminal-thin, at={(-2.95cm,0.8cm)}] {basic.mk};
+ \node [node-nonterminal-thin, at={(-2.95cm,0.3cm)}] {high-level.mk};
+ \node [node-nonterminal-thin, at={(-2.95cm,-0.2cm)}] {python.mk};
%% reproduce/software/bash
- \node [at={(-5.75cm,0.2cm)}, anchor=north,
- rectangle,
- very thick,
- text centered,
- font=\ttfamily,
- minimum height=2.1cm,
- minimum width=2.6cm,
- draw=green!50!black!50,
- fill=black!10!green!2!white,
- label={[shift={(0,-5mm)}]\texttt{bash/}}] {};
- %% Its files
- \node [node-nonterminal-thin, at={(-5.75cm,-0.5cm)}] {bashrc.sh};
- \node [node-nonterminal-thin, at={(-5.75cm,-1.0cm)}] {configure.sh};
- \node [node-nonterminal-thin, at={(-5.75cm,-1.5cm)}] {git-pre-comit};
+ \node [dirbox, at={(-5.75cm,-0.8cm)}, minimum width=2.6cm, minimum height=2.1cm,
+ label={[shift={(0,-5mm)}]\texttt{bash/}}] {};
+ \node [node-nonterminal-thin, at={(-5.75cm,-1.5cm)}] {bashrc.sh};
+ \node [node-nonterminal-thin, at={(-5.75cm,-2.0cm)}] {configure.sh};
+ \node [node-nonterminal-thin, at={(-5.75cm,-2.5cm)}] {git-pre-comit};
%% reproduce/software/bibtex
- \node [at={(-2.95cm,0.2cm)}, anchor=north,
- rectangle,
- very thick,
- text centered,
- font=\ttfamily,
- minimum height=2.1cm,
- minimum width=2.6cm,
- draw=green!50!black!50,
- fill=black!10!green!2!white,
- label={[shift={(0,-5mm)}]\texttt{bibtex/}}] {};
- %% Its files
- \node [node-nonterminal-thin, at={(-2.95cm,-0.5cm)}] {fftw.tex};
- \node [node-nonterminal-thin, at={(-2.95cm,-1.0cm)}] {numpy.tex};
- \node [node-nonterminal-thin, at={(-2.95cm,-1.5cm)}] {gnuastro.tex};
+ \node [dirbox, at={(-2.95cm,-0.8cm)}, minimum width=2.6cm, minimum height=2.1cm,
+ label={[shift={(0,-5mm)}]\texttt{bibtex/}}] {};
+ \node [node-nonterminal-thin, at={(-2.95cm,-1.5cm)}] {fftw.tex};
+ \node [node-nonterminal-thin, at={(-2.95cm,-2.0cm)}] {numpy.tex};
+ \node [node-nonterminal-thin, at={(-2.95cm,-2.5cm)}] {gnuastro.tex};
+
+ %% reproduce/analysis/
+ \node [dirbox, at={(1.55cm,2.1cm)}, minimum width=5.7cm, minimum height=5.3cm,
+ label={[shift={(0,-5mm)}]\texttt{analysis/}}] {};
%% reproduce/analysis/config
- \node [at={(0.15cm,2.5cm)}, anchor=north,
- rectangle,
- very thick,
- text centered,
- font=\ttfamily,
- minimum height=2.1cm,
- minimum width=2.6cm,
- draw=green!50!black!50,
- fill=black!10!green!2!white,
- label={[shift={(0,-5mm)}]\texttt{config/}}] {};
- %% Its files
- \node [node-nonterminal-thin, at={(0.15cm,1.8cm)}] {INPUTS.conf};
- \node [node-nonterminal-thin, at={(0.15cm,1.3cm)}] {param-1.conf};
- \node [node-nonterminal-thin, at={(0.15cm,0.8cm)}] {param-2.conf};
+ \node [dirbox, at={(0.15cm,1.5cm)}, minimum width=2.6cm, minimum height=2.1cm,
+ label={[shift={(0,-5mm)}]\texttt{config/}}] {};
+ \node [node-nonterminal-thin, at={(0.15cm,0.8cm)}] {INPUTS.conf};
+ \node [node-nonterminal-thin, at={(0.15cm,0.3cm)}] {param-1.conf};
+ \node [node-nonterminal-thin, at={(0.15cm,-0.2cm)}] {param-2.conf};
%% reproduce/analysis/make
- \node [at={(2.95cm,2.5cm)}, anchor=north,
- rectangle,
- very thick,
- text centered,
- font=\ttfamily,
- minimum height=2.1cm,
- minimum width=2.6cm,
- draw=green!50!black!50,
- fill=black!10!green!2!white,
- label={[shift={(0,-5mm)}]\texttt{make/}}] {};
- %% Its files
- \node [node-nonterminal-thin, at={(2.95cm,1.8cm)}] {initialize.mk};
- \node [node-nonterminal-thin, at={(2.95cm,1.3cm)}] {download.mk};
- \node [node-nonterminal-thin, at={(2.95cm,0.8cm)}] {analysis-1.mk};
+ \node [dirbox, at={(2.95cm,1.5cm)}, minimum width=2.6cm, minimum height=2.1cm,
+ label={[shift={(0,-5mm)}]\texttt{make/}}] {};
+ \node [node-nonterminal-thin, at={(2.95cm,0.8cm)}] {initialize.mk};
+ \node [node-nonterminal-thin, at={(2.95cm,0.3cm)}] {download.mk};
+ \node [node-nonterminal-thin, at={(2.95cm,-0.2cm)}] {analysis-1.mk};
%% reproduce/analysis/bash
- \node [at={(0.15cm,0.2cm)}, anchor=north,
- rectangle,
- very thick,
- text centered,
- font=\ttfamily,
- minimum height=2.1cm,
- minimum width=2.6cm,
- draw=green!50!black!50,
- fill=black!10!green!2!white,
- label={[shift={(0,-5mm)}]\texttt{bash/}}] {};
- %% Its files
- \node [node-nonterminal-thin, at={(0.15cm,-0.5cm)}] {process-1.sh};
- \node [node-nonterminal-thin, at={(0.15cm,-1.0cm)}] {process-2.sh};
- \node [node-nonterminal-thin, at={(0.15cm,-1.5cm)}] {process-3.sh};
+ \node [dirbox, at={(0.15cm,-0.8cm)}, minimum width=2.6cm, minimum height=2.1cm,
+ label={[shift={(0,-5mm)}]\texttt{bash/}}] {};
+ \node [node-nonterminal-thin, at={(0.15cm,-1.5cm)}] {process-1.sh};
+ \node [node-nonterminal-thin, at={(0.15cm,-2.0cm)}] {process-2.sh};
+ \node [node-nonterminal-thin, at={(0.15cm,-2.5cm)}] {process-3.sh};
%% reproduce/analysis/python
- \node [at={(2.95cm,0.2cm)}, anchor=north,
- rectangle,
- very thick,
- text centered,
- font=\ttfamily,
- minimum height=2.1cm,
- minimum width=2.6cm,
- draw=green!50!black!50,
- fill=black!10!green!2!white,
- label={[shift={(0,-5mm)}]\texttt{python/}}] {};
- %% Its files
- \node [node-nonterminal-thin, at={(2.95cm,-0.5cm)}] {operation-1.py};
- \node [node-nonterminal-thin, at={(2.95cm,-1.0cm)}] {operation-2.py};
- \node [node-nonterminal-thin, at={(2.95cm,-1.5cm)}] {fitting-plot.py};
-
- %% tex
- \node [at={(6cm,3.5cm)}, anchor=north,
- rectangle,
- very thick,
- text centered,
- font=\ttfamily,
- minimum height=6cm,
- minimum width=2.7cm,
- draw=green!50!black!50,
- fill=black!10!green!2!white,
- label={[shift={(0,-5mm)}]\texttt{tex/}}] {};
+ \node [dirbox, at={(2.95cm,-0.8cm)}, minimum width=2.6cm, minimum height=2.1cm,
+ label={[shift={(0,-5mm)}]\texttt{python/}}] {};
+ \node [node-nonterminal-thin, at={(2.95cm,-1.5cm)}] {operation-1.py};
+ \node [node-nonterminal-thin, at={(2.95cm,-2.0cm)}] {operation-2.py};
+ \node [node-nonterminal-thin, at={(2.95cm,-2.5cm)}] {fitting-plot.py};
- %% tex/src
- \node [at={(6cm,3cm)}, anchor=north,
- rectangle,
- very thick,
- text centered,
- font=\ttfamily,
- minimum width=2.5cm,
- minimum height=5.3cm,
- draw=green!50!black!50,
- fill=black!10!green!2!white,
- label={[shift={(0,-5mm)}]\texttt{src/}}] {};
- %% Its files
- \node [node-nonterminal-thin, at={(6cm,2.2cm)}] {preamble-1.tex};
- \node [node-nonterminal-thin, at={(6cm,1.7cm)}] {preamble-2.tex};
- \node [node-nonterminal-thin, at={(6cm,1.2cm)}] {figure-1.tex};
- \node [node-nonterminal-thin, at={(6cm,0.7cm)}] {figure-2.tex};
+ %% tex/
+ \node [dirbox, at={(6cm,2.6cm)}, minimum width=2.7cm, minimum height=6cm,
+ label={[shift={(0,-5mm)}]\texttt{tex/}}] {};
+ %% tex/src
+ \node [dirbox, at={(6cm,2.1cm)}, minimum width=2.5cm, minimum height=2.1cm,
+ label={[shift={(0,-5mm)}]\texttt{src/}}] {};
+ \node [node-nonterminal-thin, at={(6cm,1.4cm)}] {preamble-1.tex};
+ \node [node-nonterminal-thin, at={(6cm,0.9cm)}] {preamble-2.tex};
+ \node [node-nonterminal-thin, at={(6cm,0.4cm)}] {figure-1.tex};
+
+ %% tex/build
+ \node [dirbox, at={(6cm,-0.2cm)}, minimum width=2.5cm, minimum height=1.3cm,
+ label={[shift={(0,-5mm)}]\texttt{build/}}, dashed] {};
+ \node [anchor=west, at={(4.7cm,-1.0cm)}] {\scriptsize\sf Symbolic link to};
+ \node [anchor=west, at={(4.7cm,-1.3cm)}] {\scriptsize\sf \LaTeX{} build directory.};
+
+ %% tex/build
+ \node [dirbox, at={(6cm,-1.7cm)}, minimum width=2.5cm, minimum height=1.6cm,
+ label={[shift={(0,-5mm)}]\texttt{tikz/}}, dashed] {};
+ \node [anchor=west, at={(4.67cm,-2.5cm)}] {\scriptsize\sf Symbolic link to TikZ};
+ \node [anchor=west, at={(4.67cm,-2.8cm)}] {\scriptsize\sf directory (figures built};
+ \node [anchor=west, at={(4.67cm,-3.1cm)}] {\scriptsize\sf by \LaTeX).};
+
+ %% .local
+ \node [dirbox, at={(-3.6cm,-3.7cm)}, minimum width=7cm, minimum height=1.2cm,
+ label={[shift={(0,-5mm)}]\texttt{.local/}}, dashed] {};
+ \node [anchor=west, at={(-7.1cm,-4.4cm)}]
+ {\scriptsize\sf Symbolic link to project's software environment, e.g., };
+ \node [anchor=west, at={(-7.1cm,-4.7cm)}]
+ {\scriptsize\sf Python or R, run `\texttt{.local/bin/python}' or `\texttt{.local/bin/R}'};
+
+ %% .build
+ \node [dirbox, at={(3.6cm,-3.7cm)}, minimum width=7cm, minimum height=1.2cm,
+ label={[shift={(0,-5mm)}]\texttt{.build/}}, dashed] {};
+ \node [anchor=west, at={(0.1cm,-4.4cm)}]
+ {\scriptsize\sf Symbolic link to project's top-level build directory.};
+ \node [anchor=west, at={(0.1cm,-4.7cm)}]
+ {\scriptsize\sf Enabling easy access to built project components.};
\end{tikzpicture}
diff --git a/tex/src/preamble-pgfplots.tex b/tex/src/preamble-pgfplots.tex
index 57a0128..7f566b8 100644
--- a/tex/src/preamble-pgfplots.tex
+++ b/tex/src/preamble-pgfplots.tex
@@ -202,3 +202,14 @@
draw=green!50!black!50,
top color=white,
bottom color=green!50!black!20 } }
+
+\tikzset{ dirbox/.style={
+ thick,
+ rectangle,
+ anchor=north,
+ text centered,
+ font=\ttfamily,
+ minimum width=15cm,
+ minimum height=7.5cm,
+ draw=green!50!black!50,
+ fill=green!3!white }}