/awesome-scientific-writing

:keyboard: A curated list of awesome tools, demos and resources to go beyond LaTeX

Creative Commons Zero v1.0 UniversalCC0-1.0

Awesome Scientific Writing Awesome

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 :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.
    • 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 :bookmark: :link:.

Bibliography

Reference managers to generate citations, BibTeX, and BibLaTeX files.

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 Lists

Contribute

Contributions welcome! Read the contribution guidelines first.