summaryrefslogtreecommitdiffstats
path: root/2023/talks/doc.md
blob: 0f7edf2c737e346910d8180678f3f7c67b39664a (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
[[!meta title="Literate Documentation with Emacs and Org Mode"]]
[[!meta copyright="Copyright © 2023 Mike Hamrick"]]
[[!inline pages="internal(2023/info/doc-nav)" raw="yes"]]

<!-- Initially generated with emacsconf-publish-talk-page and then left alone for manual editing -->
<!-- You can manually edit this file to update the abstract, add links, etc. --->


# Literate Documentation with Emacs and Org Mode
Mike Hamrick

[[!inline pages="internal(2023/info/doc-before)" raw="yes"]]

When writing about programming or other technical subjects, you’re often weaving blocks of source code, program output, and raw data in with your prose. These supplementary materials are usually copied and pasted into your document from other sources, which can be difficult and tedious to keep up-to-date as things change. Inconsistencies and errors can easily creep in when you “hard-code” dynamic information like program output into your writing.

Wouldn’t it be great if the tool you used for writing knew how to run code in a variety of programming languages, collect and format output, and let you refer symbolically to all this dynamically generated content in your prose? In this talk I’ll demonstrate how to use GNU Emacs’ Org mode to create technical documents that do just that. We’ll explore the features of Babel, Org mode’s literate programming add-on, that makes it convenient to edit, evaluate, and manage embedded code, output, and data all from inside GNU Emacs.

We'll also show how these literate documents can be exported to LaTeX and ultimately PDF format to create professional looking output that looks stunning when printed or viewed.

Also shared at SeaGL 2023

[[!inline pages="internal(2023/info/doc-after)" raw="yes"]]

[[!inline pages="internal(2023/info/doc-nav)" raw="yes"]]