Awesome
Characterisation of biotic interactions between a Dyadobacter strain and the diatom Achnanthidium minutissimum (Katrin Leinweber, PhD thesis, 2012-2015)
This repository stores both the content of my thesis (sources, data, figures and supplemental files), and the software toolchain used to compile it into the final printed and electronic, official version. This repository is an experimental tech-demo & backup.
Toolchain: mixed Markdown & LaTeX
Text
- Write in AcademicMarkdown in Sublime with Citer, as explained by Christopher Grainger.
- Separate
.md
file per chapter; number in filename determines order. - Figures as mixed MD & LaTeX:
![**Caption.** Some more legend.\label{label}](images/image.pdf)
- Conversion to LaTeX, then PDF with pandoc via a
makefile
adapted from Jens Erat's "Scientific Markdown".
References
- Manage in Zotero collection "thesis".
- keep selected, so that new items are automatically collected there
- Zotero autoexporting addon set to:
Autoexport mode
- timer triggered every few hours (trying to avoid temptation of
make
-ing PDF every few paragraphs) BibTeX
fileformat &thesis.bib
into some backup directoryonly custom
collection/saved searches activated &thesis
ticketpostprocess
deactivated- simpler alternative, but with notable freezing of Zotero for few seconds & no ability to export different collections to different files:
Autoexport mode
,Trigger by events
,C:\path\to\thesis\references.bib
&[...] whole library
- Cite by letting Citer expand known BibTeX key from
thesis.bib
&references.bib
followed by auto-pasting it into text with PhraseExpress rule for[@{#insertclipboard}]
(Win) and[@%clipboard]
in TextExpander (Mac). - Let
makefile
copythesis.bib
from backup to working directory. - Let
makefile
replace PDF's link color withblack
for printing.
Git
- GitHub apps for Win & Mac, or Tower.
- Track whole working dir, except TeX, R, Windows temp files & final PDFs.
- Create
doctor
branch from defaultmaster
& delete default ;-> - Try working on logical chunks, eg.
- sentence about goal of study in introduction plus figure & paragraph about that goal in results plus raw data & R script of figure in supplemental section plus discussion with literature reference about that result
- proof-reading of a chapter => highlight advantages of Markdown+Git workflow to supervisor at this point ;-)
- adjusting all diagram styles (
ggplot2 | theme()
) - rearranging chapters, sections or files
- Summarise logically connected edits in single commit to branch
doctor
. - Experiment (technically and content-wise) by branching:
- merge successes back into
doctor
- simply leave unsatisfactory experiments be => "stale" branch accessible later
- remember to always switch the GitHub app to the right branch before
4. Try working on logical chunks
- merge successes back into
Helper tools
helper-ansi2html.sh
: exports changesets/diffs for review by non-Git user. Usage:make diff
. See makefile for details. Credit: Paige Lo, yingted, Pádraig Brady & Brendan O'Connor- In case of error
-bash: ./helper-ansi2html.sh: Permission denied
, try running the commandchmod +x helper-ansi2html.sh
. Credit: pedro3005
- In case of error
helper-checkurls.R
: help to investigate broken or expired URLs. Usage: run in the R console or RStudio. Credit: Thomas Leeper.
Known issues & miscellaneous advice
- Due to an incompatibility between
titlesec
and pandocv1.15.1
is required to produce an exact copy of the accepted version. - Be prepared for newly introduced incompatibilities when updating LaTeX packages or pandoc. Don't update on a Friday and automate the testing of the final PDF for control characters like
~
,{
,_
, etc. - Cygwin shortcut for working directories
- Try to avoid tinkering too much & often with citation style, makefile etc. by working on a
content
branch most of the time, only rarely onformat
. Merge both intodoctor
only for review (maybe weekly) & final printing.