{"id":14980874,"url":"https://github.com/katrinleinweber/phd-thesis","last_synced_at":"2025-07-29T19:23:23.358Z","repository":{"id":34419735,"uuid":"38351597","full_name":"katrinleinweber/PhD-thesis","owner":"katrinleinweber","description":"Experimental tech-demo for PhD thesis in Scientific Markdown; official:","archived":false,"fork":false,"pushed_at":"2021-10-20T19:06:43.000Z","size":29137,"stargazers_count":45,"open_issues_count":1,"forks_count":5,"subscribers_count":7,"default_branch":"doctor","last_synced_at":"2025-02-01T21:41:35.209Z","etag":null,"topics":["biochemistry","biofilm","biology","citer","diatom","eds","electron-microscopy","latex","latex-document","latexmk","make","makefile","markdown","markdown-template","microscopy","pandoc","phd-thesis","zotero"],"latest_commit_sha":null,"homepage":"http://kops.uni-konstanz.de/handle/123456789/34342","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/katrinleinweber.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null},"funding":{"github":"katrinleinweber","liberapay":"~1216026"}},"created_at":"2015-07-01T05:30:34.000Z","updated_at":"2024-11-13T23:59:23.000Z","dependencies_parsed_at":"2022-09-16T01:34:29.121Z","dependency_job_id":null,"html_url":"https://github.com/katrinleinweber/PhD-thesis","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/katrinleinweber%2FPhD-thesis","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/katrinleinweber%2FPhD-thesis/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/katrinleinweber%2FPhD-thesis/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/katrinleinweber%2FPhD-thesis/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/katrinleinweber","download_url":"https://codeload.github.com/katrinleinweber/PhD-thesis/tar.gz/refs/heads/doctor","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238762868,"owners_count":19526489,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["biochemistry","biofilm","biology","citer","diatom","eds","electron-microscopy","latex","latex-document","latexmk","make","makefile","markdown","markdown-template","microscopy","pandoc","phd-thesis","zotero"],"created_at":"2024-09-24T14:02:32.016Z","updated_at":"2025-02-14T01:33:17.109Z","avatar_url":"https://github.com/katrinleinweber.png","language":"Shell","funding_links":["https://github.com/sponsors/katrinleinweber","https://liberapay.com/~1216026"],"categories":[],"sub_categories":[],"readme":"# Characterisation of biotic interactions between a *Dyadobacter* strain and the diatom *Achnanthidium minutissimum* (Katrin Leinweber, PhD thesis, 2012-2015)\n\nThis 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](https://kops.uni-konstanz.de/handle/123456789/34342)**. This repository is an experimental tech-demo \u0026 backup.\n\n## Toolchain: mixed Markdown \u0026 LaTeX\n\n### Text\n\n1. Write in AcademicMarkdown in [Sublime](https://www.sublimetext.com/3) with Citer, as [explained by Christopher Grainger](https://web.archive.org/web/20160524123217/http://blog.cigrainger.com:80/2014/07/pandoc-markdown.html).\n1. Separate `.md` file per chapter; number in filename determines order.\n1. Figures as mixed MD \u0026 LaTeX: `![**Caption.** Some more legend.\\label{label}](images/image.pdf)`\n1. Conversion to LaTeX, then PDF with [pandoc](http://johnmacfarlane.net/pandoc/) via a `makefile` adapted from [Jens Erat's \"Scientific Markdown\"](https://github.com/JensErat/scientific-markdown/).\n\n### References\n\n1. Manage in [Zotero](https://www.zotero.org/) collection \"thesis\".\n    - keep selected, so that new items are automatically collected there\n1. [Zotero autoexporting addon](http://rokdd.de/b/zotero-autoexport/versions) set to:\n    - `Autoexport mode`\n    - timer triggered every few hours (trying to avoid temptation of `make`-ing PDF every few paragraphs)\n    - `BibTeX` fileformat \u0026 `thesis.bib` into some backup directory\n    - `only custom` collection/saved searches activated \u0026 `thesis` ticket\n    - `postprocess` deactivated\n    - simpler alternative, but with notable freezing of Zotero for few seconds \u0026 no ability to export different collections to different files: `Autoexport mode`, `Trigger by events`, `C:\\path\\to\\thesis\\references.bib` \u0026 `[...] whole library`\n1. Cite by letting [Citer](https://github.com/mangecoeur/Citer) expand known BibTeX key from `thesis.bib` \u0026 `references.bib` followed by auto-pasting it into text with [PhraseExpress](http://www.phraseexpress.com/index.html) rule for `[@{#insertclipboard}]` (Win) and `[@%clipboard]` in [TextExpander](http://smilesoftware.com/TextExpander/index.html) (Mac).\n1. Let `makefile` copy `thesis.bib` from backup to working directory.\n1. Let [`makefile` replace PDF's link color with `black`](https://github.com/katrinleinweber/PhD-thesis/blob/11ccb4a8308bdc9616e4944ef3f0e92e2c7b3156/makefile#L92) for printing.\n\n### Git\n\n1. GitHub apps for [Win](https://windows.github.com/) \u0026 [Mac](https://mac.github.com/), or [Tower](https://www.git-tower.com/).\n1. Track whole working dir, [except TeX, R, Windows temp files](https://github.com/github/gitignore/) \u0026 final PDFs.\n1. Create `doctor` branch from default `master` \u0026 delete default ;-\u003e\n1. Try working on logical chunks, eg.\n    - sentence about goal of study in introduction *plus* figure \u0026 paragraph about that goal in results *plus* raw data \u0026 R script of figure in supplemental section *plus* discussion with literature reference about that result\n    - proof-reading of a chapter =\u003e highlight advantages of Markdown+Git workflow to supervisor at this point ;-)\n    - adjusting all diagram styles (`ggplot2 | theme()`)\n    - rearranging chapters, sections or files\n1. Summarise logically connected edits in single commit to branch `doctor`.\n1. Experiment (technically and content-wise) by branching:\n    - merge successes back into `doctor`\n    - simply leave unsatisfactory experiments be =\u003e \"stale\" branch accessible later\n    - remember to always switch the GitHub app to the right branch before `4. Try working on logical chunks`\n\n## Helper tools\n\n- `helper-ansi2html.sh`: exports changesets/diffs for review by non-Git user. Usage: `make diff`. See [makefile](https://github.com/katrinleinweber/PhD-thesis/blob/doctor/makefile) for details. Credit: [Paige Lo](http://stackoverflow.com/a/23481387), [yingted](http://stackoverflow.com/a/7870727/4341322), [Pádraig Brady \u0026 Brendan O'Connor](https://github.com/pixelb/scripts/blob/master/scripts/ansi2html.sh)\n    - In case of error `-bash: ./helper-ansi2html.sh: Permission denied`, try running the command `chmod +x helper-ansi2html.sh`. Credit: [pedro3005](http://ubuntuforums.org/showthread.php?t=1258327)\n- `helper-checkurls.R`: help to investigate broken or expired URLs. Usage: run in the [R](https://www.r-project.org/) console or [RStudio](https://www.rstudio.com/products/rstudio/). Credit: [Thomas Leeper](https://twitter.com/thosjleeper/status/725723310223417345).\n\n## Known issues \u0026 miscellaneous advice\n\n- Due to an [incompatibility](https://groups.google.com/forum/#!msg/pandoc-discuss/J3o82G0WGOk/) between [`titlesec`](https://github.com/katrinleinweber/PhD-thesis/blob/doctor/header.tex#L15) and pandoc [`v1.15.1`](https://github.com/jgm/pandoc/releases/tag/1.15.1/) is required to produce an exact copy of the [accepted version](https://kops.uni-konstanz.de/handle/123456789/34342).\n- Be prepared for newly introduced incompatibilities when updating [LaTeX packages](https://www.ctan.org/) or [pandoc](http://pandoc.org/). Don't update on a Friday and [automate the testing of the final PDF](https://github.com/katrinleinweber/PhD-thesis/blob/doctor/makefile#L97) for control characters like `~`, `{`, `_`, etc.\n- [Cygwin shortcut for working directories](http://stackoverflow.com/a/12010346)\n- Try to avoid tinkering too much \u0026 often with citation style, makefile etc. by working on a `content` branch most of the time, only rarely on `format`. Merge both into `doctor` only for review (maybe weekly) \u0026 final printing.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkatrinleinweber%2Fphd-thesis","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkatrinleinweber%2Fphd-thesis","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkatrinleinweber%2Fphd-thesis/lists"}