An open API service indexing awesome lists of open source software.

https://github.com/jrgant/manuscript-org-template

A template for writing manuscripts in Org Mode
https://github.com/jrgant/manuscript-org-template

emacs org-mode pandoc scientific-writing

Last synced: 7 months ago
JSON representation

A template for writing manuscripts in Org Mode

Awesome Lists containing this project

README

          

* Org Manuscript Template

A personal repo for manuscript and grant writing in Org Mode. Used on Kubuntu 22.04.

** Dependencies

- [[https://github.com/doomemacs/doomemacs][Doom Emacs]]
- [[https://www.libreoffice.org][LibreOffice]]
- [[https://www.gnu.org/software/make/][GNU Make]]
- [[https://pandoc.org][Pandoc]]

** Overview

I'm trying to solve the problem of wanting to write in Org Mode while needing to collaborate in document formats that people actually use. Right now, I am happy to have a pipeline that (mostly) solves the conversion and collaboration problem.

The basic format pipeline is =org → tex → docx → pdf=.

The =_scripts= directory contains two scripts: a Doom CLI script (=export-to-latex.el=) and a shell script (=org2output.sh=) that calls the former and handles the rest of the conversion pipeline.

| Conversion | Utility |
|---------------+-----------------------------------|
| =org → tex= | Emacs =org-latex-export-to-latex= |
| =tex → docx= | Pandoc |
| =docx → pdf= | LibreOffice |

The =_styles= directory contains Citation Style Language (CSL) files for reference formatting, as well as =docx= files used by Pandoc as style references. The "draft" reference file includes a header with my name and a DRAFT watermark.

The Makefile provides job options for exporting the =org= file and organizing drafts or other elements in the project directory:

| Job | Description |
|-------------------+------------------------------------------------------------------|
| =draft= | Create a watermarked draft document |
| =final= | Create a clean (unwatermarked) document |
| =timestamp-draft= | Timestamp the current manuscript as a draft (saved to =_drafts=) |
| =timestamp-final= | Timestamp the current manuscript as a final (saved to =_final=) |
| =cleantex= | Remove auxiliary files created during export to TeX |

The =timestamp-*= jobs add a UTC timestamp to the filename. I use a datetime stamp as a versioning system because the stamp is unique /and/ sortable chronologically. However, timestamps could be de-synchronized when moving between time zones if the system clock doesn't update properly.

** License

The CC0 license used here applies only to files I've written myself. CSL files and Lua Pandoc filters retain their original license.