[[!meta title="Babel for academics"]]
[[!meta copyright="Copyright © 2021 Asilata Bapat"]]
[[!inline pages="internal(2021/info/babel-nav)" raw="yes"]]
# 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:
- Code:
- Code (gitlab mirror):
# Discussion
IRC nick: asilata
Pad:
- Q1: The talk was amazing thanks! I show the img inline in the Org
file with org-toggle-inline-images, maybe useful to others too.
- A: Thanks! I do that if I want to look at previews, too, but
sometimes it slows down my document. Any tips for that?
- Q2: I always tried to use Tikz for showing diagrams in Org Mode
documents, but dot code blocks definitively make drawing graphics
easier! Thanks for sharing!
- Remark by Karl: In my personal workflows, I love the abstraction
layer of
From BBB:
- Don't have a question, just to say inspiring to see how you use org-mode + babel. Thx!
- Ha, a question, is your setup online somewhere?
- Asilata Bapat:
- thanks so much for the presentation and sharing the details of your workflow
- I particularly appreciated your "causal use" of skel :D
IRC:
- the export-setup block is a great use case for orgstrap :)
- asilata: I was just thinking that after the orgstrap presentation :)
- Man I was just wondering how to write LateX in Emacs this is incredible.
- I really liked the resulting LaTeX output file -- looked gorgeous :)
- Yeah seriously. I am pleasantly surprised. I think I'll have to switch over to using Emacs and LateX
- Theme: zenburn
- wait ... does elisp support unicode lambda like racket?
- I mean... you can make it, but not out of the box.
- asilata: I think it's just an org prettification
- prettify-symbols-mode
- do you use latex preview in the org buffer too?
- asilata: no, I usually don't, I find it slows down my system a bit.
- some very nice examples of wicked-cool org stuff there :)
- I also use python to generate latex from babel so that I don't mess things up
Links:
-
-
# Speaker information
- Name pronunciation: /ˈəsɪʟət̪ɑ ˈbɑpəʈ/ UH-si-luh-tah BAH-putt
- Pronouns: she/her
- Homepage:
- Email:
[[!inline pages="internal(2021/captions/babel)" raw="yes"]]
[[!inline pages="internal(2021/info/babel-nav)" raw="yes"]]