From 01dd812b7b828982b7d36e2967f0d9f558780e78 Mon Sep 17 00:00:00 2001
From: Mohammad Akhlaghi <mohammad@akhlaghi.org>
Date: Mon, 20 Jan 2020 04:30:56 +0000
Subject: Added figure showing project's file structure

It was a little hard to describe the file structure so instead of using a
standard listing as most papers do, I thought of showing the file and
directory structure as boxes within each other (modeled on the Gnome
disk-utility).

Some other polishing was done throughout the paper also.
---
 tex/src/figure-file-architecture.tex | 223 +++++++++++++++++++++++++++++++++++
 1 file changed, 223 insertions(+)
 create mode 100644 tex/src/figure-file-architecture.tex

(limited to 'tex/src/figure-file-architecture.tex')

diff --git a/tex/src/figure-file-architecture.tex b/tex/src/figure-file-architecture.tex
new file mode 100644
index 0000000..3a7b760
--- /dev/null
+++ b/tex/src/figure-file-architecture.tex
@@ -0,0 +1,223 @@
+\begin{tikzpicture}[
+  line width=1.5pt,
+  black!50,
+  text=black,
+]
+
+  %% 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)},
+         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/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/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};
+
+  %% 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};
+
+  %% 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};
+
+  %% 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};
+
+  %% 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};
+
+  %% 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};
+
+  %% 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/}}] {};
+
+  %% 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};
+
+\end{tikzpicture}
-- 
cgit v1.2.1

