From 2ed0c82eff6af8aecd34b3e697b0e392ab129cd3 Mon Sep 17 00:00:00 2001 From: Mohammad Akhlaghi Date: Mon, 20 Jan 2020 19:45:24 +0000 Subject: 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. --- tex/src/figure-file-architecture.tex | 290 ++++++++++++----------------------- tex/src/preamble-pgfplots.tex | 11 ++ 2 files changed, 108 insertions(+), 193 deletions(-) (limited to 'tex/src') 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 }} -- cgit v1.2.1