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.