Awesome Scientific Writing
Scientific writing can extend beyond LaTeX, made possible by formats,
such as
Markdown (and its many flavours),
reStructuredText and
Jupyter notebooks.
🔖 means ability to seamlessly cite references.
🔗 means ability to cross-reference figures and sections within the
document.
Contents
Word Processors
-
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
🔖 🔗.
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.
-
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
notebooks into
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
cross-references.
-
Panflute - Pythonic alternative
to John MacFarlane's pandocfilters.
Spell Checking and Linting
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.
Other Awesome Lists
Contribute
Contributions welcome! Read the contribution guidelines first.