Skip to content

Commit

Permalink
LaTeX figures now defined inside markdown
Browse files Browse the repository at this point in the history
  • Loading branch information
AlvarBer committed Dec 20, 2016
1 parent e19c8ad commit 4692839
Show file tree
Hide file tree
Showing 7 changed files with 110 additions and 11 deletions.
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
# PDF files
*.pdf

# TeX files
*.tex

# Vim Backup files
*.swp
*~
Expand Down
1 change: 0 additions & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@ script: true
after_success:
- sudo apt-get install texlive-latex-extra
- cd docs
- sudo curl ftp://ftp.tug.org/texlive/Contents/live/texmf-dist/tex/latex/standalone/standalone.cls > standalone.cls
- make travis && cd ..

deploy:
Expand Down
11 changes: 6 additions & 5 deletions docs/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -2,24 +2,25 @@ PDF := persimmon.pdf # PDF Main Target
CSL := emerald-harvard.csl # CSL file used for citations
TEMPLATE := template.tex # LaTeX template for producing PDF
BIBLIOGRAPHY := persimmon.bib # BibLaTeX bibliography
MARKDOWN := chapter0.md chapter1.md chapter2.md # Markdown files
MARKDOWN := chapter0.md chapter1.md chapter2.md chapter3.md # Markdown files
GRAPHS := $(wildcard graphs/*.tex)
IMAGES := $(GRAPHS:.tex=.pdf)
LATEXHEADERS := latexheaders.tex

all: $(PDF)

$(PDF): $(MARKDOWN) $(BIBLIOGRAPHY) $(CSL) $(TEMPLATE) $(IMAGES) metadata.yaml
$(PDF): $(MARKDOWN) $(BIBLIOGRAPHY) $(CSL) $(TEMPLATE) metadata.yaml
pandoc --standalone --smart --latex-engine xelatex --template $(TEMPLATE) \
--top-level-division chapter --bibliography $(BIBLIOGRAPHY) --csl $(CSL) \
metadata.yaml $(MARKDOWN) -o $@
--include-in-header latexheaders.tex metadata.yaml $(MARKDOWN) -o $@

graphs/%.pdf: graphs/%.tex
xelatex $<

travis: $(IMAGES)
travis:
pandoc --standalone --smart --latex-engine xelatex --template $(TEMPLATE) \
--chapters --bibliography $(BIBLIOGRAPHY) --csl $(CSL) \
metadata.yaml $(MARKDOWN) -o $(PDF)
--include-in-header latexheaders.tex metadata.yaml $(MARKDOWN) -o $(PDF)


# Splitted creation (Not currently working)
Expand Down
46 changes: 41 additions & 5 deletions docs/chapter2.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,23 @@ The best way we can describe the project is by dividing the objectives.
and the best way to understand the progression of those and their relation
is with a diagram.

![objectives tree](objectives.pdf)

\begin{figure}
\centering
\caption{Objectives Tree}
\begin{tikzpicture}
\draw (-1, 1.4) rectangle (1, 2.1) node[midway, gray] {Capped};
\draw [->, gray, thick] (0, 2.2) -- (0, 2.7);
\draw (-1, 2.8) rectangle (1, 3.5) node[midway, gray] {Parity};
\draw [->, gray, thick] (0, 3.6) -- (0, 4.3);
\draw (-1, 4.4) rectangle (1, 5.1) node[midway, gray] {Compilation};
\draw [red, dashed] (-3, 5.5) -- (3, 5.5) node[below left] {Out of scope};
\draw [->, gray, thick] (-0.1, 5.2) -- (-2, 5.9);
\draw [->, gray, thick] (0.1, 5.2) -- (2, 5.9);
\draw (-3, 6) rectangle (-1, 6.7) node[midway, gray] {Web};
\draw (1, 6) rectangle (3, 6.7) node[midway, gray] {Synthesis};
\end{tikzpicture}
\end{figure}

**Capped** is more than a minimum viable product, a extensive proof-of-concept,
with a few limited algorithms and the ability of inputing `.csv` files. with a
Expand All @@ -27,11 +43,31 @@ the ability to visualize on persimmon a python source file.

Now that we understand the objectives we can draw a much detailed gantt diagram.

![gantt diagram](gantt.pdf)
\begin{figure}
\caption{Gantt Diagram}
\begin{ganttchart}[
hgrid,
vgrid,
time slot format=isodate-yearmonth,
x unit=2cm,
compress calendar,
inline,
]{2016-10}{2017-04}
\gantttitlecalendar{year, month=name} \\
\ganttbar{Distil Idea}{2016-10}{2016-10} \\
\ganttbar{Planning}{2016-11}{2016-12} \\
\ganttgroup{Implementation}{2016-12}{2017-03} \\
\ganttbar{Iteration 1}{2016-12}{2017-01} \\
\ganttlinkedmilestone{Capped}{2017-01} \\
\ganttlinkedbar{Iteration 2}{2017-02}{2017-02} \\
\ganttlinkedmilestone{Parity}{2017-02} \\
\ganttlinkedbar{Iteration 3}{2017-03}{2017-03} \\
\ganttlinkedmilestone{Compilation}{2017-03} \\
\ganttbar{Report Building}{2016-10}{2017-03}
\ganttbar{Refinement}{2017-04}{2017-04} \\
\end{ganttchart}
\end{figure}

We ommited previous months that included idea refinement but are not
interesting for us.

Bibliography
============

57 changes: 57 additions & 0 deletions docs/chapter3.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
Risk Analysis
=============

Stakeholders
------------
I. Project author
II. Users (Non technical background)
III. Academic Reviewers (Project Supervisor, Moderator...)

On the case of the project author is the main stakeholder, his aim being
developing a satisfactory project.

The users in this particular case play a particularly active role on
development and their existence influenced the design of the project,
particularly the interface for interaction.

The academic reviewers play a support role on the project, they are concerned
with ensuring the report follows the university guidelines and making sure
the development stays on course.

Prevention & Mitigation
-----------------------

| Risk Factor | Low Impact | Medium Impact | High Impact |
|--------------|--------------------|----------------------|------------------|
| Requirements | Not defined enough | Change at late stage | Unreachable goal |
| Technology | Performance issues | Interoperability | Major errors |

For the not defined enough requirements a break by user goals (exemplified by
the use case diagrams) can help make clear what the requirement is exactly.
If a requirement change appears at a late stage we can mitigate the impact by
employing an agile methodology (Like **Scrum** or **Kanban**) that allows us to work
on smalls sprints and refocus on ever-changing requirements.
In the case of an unreachable goal we could stablish partial objectives that
can be archived, splitting our goal into several smaller goals, making it
easier to at least some, if not all.

Performance issues like the ones the project suffered can be countered with
reducing the data we use to do the processing, making it more of a proof of
concept while retaining the validity of the project claims. Another solution is
caching the results of the bottlenecks (Expensive operations) and using those
results in the final application.
On the other hand there is no easy solution for interoperability issues,
besides changing development platform/core language there is not a lot we could
do.


Same goes for major errors on the platform we are using, some alternatives were
considered but in case of a major failure later down the line the only real
solution is rewriting those parts. For preventing these issues a technical
analysis of the capabilities of the platform must be done before starting the
project, identifying possible faults and providing possible solutions and or
alternatives.


Bibliography
============
2 changes: 2 additions & 0 deletions docs/latexheaders.tex
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
\usepackage{tikz}
\usepackage{pgfgantt}
1 change: 1 addition & 0 deletions docs/template.tex
Original file line number Diff line number Diff line change
Expand Up @@ -215,6 +215,7 @@
\titleformat*{\paragraph}{\large\bfseries\sffamily}
\titleformat*{\subparagraph}{\large\bfseries\sffamily}


\begin{document}
$if(title)$
\maketitle
Expand Down

0 comments on commit 4692839

Please sign in to comment.