Awesome Scientific Writing
Scientific writing can extend beyond LaTeX, made possible by formats,
Markdown (and its many flavours),
🔖 means ability to seamlessly cite references.
🔗 means ability to cross-reference figures and sections within the
Atom - Popular IDE with Markdown support.
Marktext - Markdown text editor.
R Studio - IDE for R.
bookdown - R package to facilitate writing books and long-form articles, reports with R Markdown 🔖 🔗.
R Markdown - R package to write R next to Markdown
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.
Markdown All in One - Extension for enhanced
Markdown support in VSCode, such as preview and auto completion to name a few.
Zettlr - Markdown editor which
integrates CSL, BibLaTeX, Pandoc and many other tools
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
ZoteroBib - Online bibliography reference manager.
Drawing illustrations themselves has driven many a scientist mad. Fortunately,
there are formal languages with which one can create beautiful graphics.
diagrams.net - Open source, online, desktop and
container deployable diagramming software.
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 🔗.
docutils - Python package which can
convert reStructuredText into various formats and provides command-line
tools to do it 🔗.
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
reveal.js presentations, PDF, HTML, Markdown,
reStructuredText and more.
bookbook - Experimental Python
package which extends
nbconvert and adds the ability to cross reference
within and across notebooks 🔗.
ipypublish - Workflow for
creating and editing publication ready scientific reports and presentations,
from one or more Jupyter Notebooks, without leaving the browser 🔖
pandoc - Haskell library for converting from
one markup format to another, and a command-line tool that uses this
library 🔖 🔗.
Academic Markdown - Python wrapper over Pandoc with specialized extensions to parse certain
elements, making it a superset of Pandoc Markdown flavour 🔖
Pandoc filters - List of
addons to pandoc which implement extra features such as citations and
Panflute - Pythonic alternative
to John MacFarlane's pandocfilters.
Spell Checking and Linting
Reusable minimalist examples.
Boilerplate - Demonstrate
how to integrate Pandoc with an existing LaTeX template which
requires some boilerplate code (i.e. LaTeX preamble), thus avoiding the
scientific-markdown - Example
for use of Markdown for scientific publications using Pandoc and
Steve's R Markdown Templates - Academic manuscript, memos, Beamer presentation, syllabus and CV.
pandoc-starter - Templates for
articles, Beamer presentations etc. using Markdown files and Makefiles for
getting started with Pandoc.
slides - Demo for generating
presentations using Pandoc.
How to generate articles and presentations for scientific purposes.
Other Awesome Lists
Contributions welcome! Read the contribution guidelines first.