summaryrefslogtreecommitdiffstats
path: root/2021/talks/babel.md
blob: a42ba97d82540766b08b8adf3f5021b5fd5a6ef0 (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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
[[!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

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!



# Outline

-   5-10 minutes: (brief description/outline)

For a 5-10 minute presentation I will give a brief intro and present one or two example files that heavily use babel. I will use these
examples to highlight some of the features mentioned in the abstract.

<!-- -   20 minutes: (brief description/outline)
    For a 20 minute presentation I would like to discuss how one might

begin with setting up org/babel environments for course admin and
notes, or for writing papers. I will discuss the org export dispatcher
and how to play with some settings to make it do what you want it to
do.

-   40 minutes: (brief description/outline)
    A 40-minute version would include a combination of the 5 and 20

minute versions in more depth. Along the way, I will go into some more
of the technicalities of babel, such as header arguments, the various
result and export formats, noweb references and variables, code
sessions, and tangling.
-->


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

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