Awesome Scientific Writing

Scientific writing can extend beyond LaTeX, made possible by formats,
such as Markdown (and
its many flavours), reStructuredText and
Jupyter notebooks.
:bookmark: means ability to seamlessly cite
references.
:link: means ability to cross-reference figures and sections
within the document.
Contents
Word Processors
- Marktext -
Markdown text editor.
- R Studio - IDE for
R.
- bookdown - R
package to facilitate writing books and long-form articles, reports with
R Markdown :bookmark: :link:.
- R Markdown - R package
to write R next to Markdown :bookmark: :link:.
- Vim - Command line text editor.
- fzf-bibtex -
BibTeX source with Vim integration which uses fzf (a fuzzy finder
implemented in Go).
- vim-pandoc -
Pandoc integration and utilities for Vim.
- vim-pandoc-syntax
- Pandoc syntax highlighting for Vim.
- Visual Studio Code -
Popular IDE with Markdown support.
- Zettlr - Markdown editor which
integrates CSL, BibLaTeX, Pandoc and many other tools :bookmark:
:link:.
Bibliography
Reference managers to generate citations, BibTeX, and BibLaTeX
files.
- Citation Style Language
(CSL) styles - Crowdsourced repository with over 9000 free CSL
citation styles and an online editor to create new ones.
- JabRef - Open source
bibliography reference manager.
- Zotero - FOSS tool to collect,
organize, cite, and share research.
- ZoteroBib - Online bibliography
reference manager.
Illustrations
Drawing illustrations themselves has driven many a scientist mad.
Fortunately, there are formal languages with which one can create
beautiful graphics.
- app.diagrams.net - Open
source, online, desktop and container deployable diagramming software
named draw.io.
- graphviz - Visualization
software for graphs and networks which uses a domain-specific DOT
language.
- Mermaid
Live Editor - Define simple diagrams instead of drawing them.
- Vega Lite -
Define charts and more complex diagrams.
- PlantUML - Define UML diagrams
instead of drawing them.
Converters and Filters
Supplementary files and tools.
- Cicero - Python package which
renders HTML presentations from Markdown source using remark or
reveal.js :link:.
- docutils -
Python package which can convert reStructuredText into various formats
and provides command-line tools to do it :link:.
- Jupyter Book - A
static site generator which converts a collection of CommonMark, MyST
markdown and Jupyter notebooks into a HTML website.
- MyST -
Markedly Structured Text, a superset of CommonMark markdown with
reStructuredText like features.
- nbconvert
- Convert Jupyter notebooks into
reveal.js presentations,
PDF, HTML, Markdown, reStructuredText and more.
- pandoc - Haskell library for
converting from one markup format to another, and a command-line tool
that uses this library :bookmark: :link:.
- Academic
Markdown - Python wrapper over Pandoc with specialized extensions to
parse certain elements, making it a superset of Pandoc Markdown flavour
:bookmark: :link:.
- Pandoc
filters - List of addons to pandoc which implement extra features
such as citations and cross-references.
- Panflute -
Pythonic alternative to John MacFarlane’s pandocfilters.
- Quarto - Compile R Markdown, and
Jupyter Notebooks to PDFs, Slides and Websites. Supports R, Python, and
Julia :bookmark: :link:.
Spell Checking and Linting
- GNU Aspell - Command line spell
checker.
- Hunspell - Command line
spell checker.
- LanguageTool - Open source
grammar, style and spell Checker.
- LanguageCheck
- Analyses scientific LaTeX papers, suggesting improvements from a list
of common mistakes/ambiguities, tense consistency, a vs. an, spell
check, and paragraph topic sentences.
- Markdown lint
tool - Markdown linter.
- proselint -
Linter for prose.
- remarklint -
Markdown linter.
- restructuredtext-lint
- reStructuredText linter.
- textlint - Pluggable
linting tool for text and Markdown.
- textidote -
Spelling, grammar and style checking on LaTeX documents.
- Vale - Free,
open-source linter for prose built with speed and extensibility in
mind.
- write-good -
Naive linter for English prose.
Templates
Reusable minimalist examples.
Articles
- Pandoc
Markdown-LaTeX Boilerplate - Demonstrate how to integrate Pandoc
with an existing LaTeX template which requires some boilerplate code
(i.e. LaTeX preamble), thus avoiding the
latexmk
dependency.
- scientific-markdown
- Example for use of Markdown for scientific publications using Pandoc
and
latexmk.
- Steve’s R
Markdown Templates - Academic manuscript, memos, Beamer
presentation, syllabus and CV.
Presentations
- pandoc-starter
- Templates for articles, Beamer presentations etc. using Markdown files
and Makefiles for getting started with Pandoc.
- slides - Demo
for generating
reveal.js presentations using Pandoc.
Books
Tutorials
How to generate articles and presentations for scientific
purposes.
- 3
frameworks into one — Write your next paper with R Studio! - Article
provides an overview to a workflow that combines R Markdown (bookdown),
Zotero (literature management), and Notion (note taking on research
papers) to write academic papers.
- Book on
Riemann solvers - This example uses a custom
nbconvert
template and shows how to store your notebooks with no output (for
version control) while automatically executing them before running
bookbook, so that PDF and HTML versions include the
output.
- Dennis
Tenen and Grant Wythoff - Sustainable Authorship in Plain Text using
Pandoc and Markdown.
- Heads
up! Quarto is here to stay. Immediately combine R & Python in your
next document - Summary of the capabilities of Quarto, why to use
it, and how it compares to R Markdown. Also contains tips for M1 Mac
users on how to fix a common problem with reticulate.
- Katrin
Leinweber’s Ph.D. thesis - Automated work flow involving several
tools, but primarily Pandoc,
latexmk and Academic
Markdown.
- Scott
Selisker - Plain Text Workflow for Academic Writing with Atom.
- Teaching
and learning with Jupyter - Book written in R Markdown, bookdown and
also rendered as HTML, PDF and EPUB.
- Write
your dissertation in RMarkdown - Step-by-step guide on creating a
complex pdf document, including text, figures, references, images,
formatting, and more.
- Writing
scientific papers for ACPD using Emacs Org-mode - Detailed tutorial
on authoring a paper by seamlessly integrating with LaTeX commands
within Org-mode.
Other Lists
Contribute
Contributions welcome! Read the contribution guidelines first.
scientificwriting.md
Github