Skip to content

writing-resources/awesome-scientific-writing

Repository files navigation

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

  • 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.
  • 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.

  • 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 🔗.
  • 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.
  • 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.
  • Quarto - Compile R Markdown, and Jupyter Notebooks to PDFs, Slides and Websites. Supports R, Python, and Julia 🔖 🔗.

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.

Other Lists

Contribute

Contributions welcome! Read the contribution guidelines first.