summaryrefslogtreecommitdiffstats
path: root/2021/talks/babel.md
blob: d0eb1c91422f0b799c0155c713135fe379d7ed18 (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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
[[!meta title="Babel for academics"]]
[[!meta copyright="Copyright © 2021 Asilata Bapat"]]
[[!inline pages="internal(2021/info/babel-nav)" raw="yes"]]

<!-- You can manually edit this file to update the abstract, add links, etc. --->


# Babel for academics
Asilata Bapat

[[!inline pages="internal(2021/info/babel-schedule)" raw="yes"]]

Plain org-mode is already an extremely powerful and
customisable tool for task and time management, note-taking, calendar
and agenda management, and much more. Babel takes org a step further
by letting you write, evaluate, and export code in different languages
from within a single file. In this talk, I will highlight some
features of babel that I find exciting and extremely useful,
particularly for an academic workflow.

Getting started with babel can be intimidating, but it's hard to stop
using it once you start. As an academic, I typically don't manage
large coding projects. My primary purpose is writing lecture notes,
assignments, and papers, and managing related admin. Typically, I want
to try and automate the boring portions of my workflow without extra
overhead. I also tend to find various tasks easier in some programming
languages and harder in others, and prefer to mix and match languages
as the task dictates. Babel makes this process seamless.

A basic use case is writing a document in org-mode and exporting it to
LaTeX or HTML. Org-mode even lets you write multiple documents in a
single org file, which can be convenient. Babel lets you add all sorts
of enhancements to the same file. For example, suppose we have a
single org document with all the problem sets for a course. Within
this single file, we could now:

-   draw pictures in ditaa, graphviz, or python instead of LaTeX,
-   use python to do complex calculations and then output the result as LaTeX,
-   define skeletons to quickly draw up assignment templates,
-   toggle exporting of assignments with or without solutions based on tags,
-   locally change export settings or run a post-export hook,
-   automatically export to LaTeX after saving,
-   tangle code blocks from some or all of the languages to external files.

I will try to showcase features of babel that academics could find
helpful, by presenting some ways in which I have tried to use babel. I
would also like to be inspired by other people's babel workflows!

## Links
- Course webpage: <https://asilata.github.io/ggm/2021/>
- Code: <https://github.com/asilata/emacsconf2021>

## Speaker information
- Name pronunciation: /ˈəsɪʟət̪ɑ ˈbɑpəʈ/  UH-si-luh-tah BAH-putt
- Pronouns: she/her
- Homepage: <https://asilata.github.io>
- Email: <mailto:asilata.bapat@anu.edu.au>

[[!inline pages="internal(2021/captions/babel)" raw="yes"]]

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