This Month in Org RSS icon

Turns out that life became busy enough that instead of delaying, last month’s post had to be cancelled. We’re now back to business as usual though 🙂.

There have been some cool recent developments in Org over the past two months, but you’ll have to learn about those is next month’s edition as Org 9.5 has been released 🎉. So, let’s go over some of the changes I’m most excited about, in no particular order. To get a more complete picture of the latest changes, see ORG-NEWS.

The new citation engine

As tempted as I am to wax lyrical about the lovely new citation engine, I’ve already dedicated July’s post to it, and so will simply highlight how versatile the syntax is. Combined with the ability to swap out the default backends (basic, CSL, natbib, and bib(la)tex) for a 3rd party backend (for example, provided by a package) it is capable of meeting your citation and technical document publishing needs, whatever they may be.

citation-structure-full.svg
Figure 1: The full citation syntax

Since the announcement of org-cite, the ecosystem has continued to expand with a number of promising packages like Bruce D’Arcus’ citar (previously bibtex-actions), which currently provides what is arguably the best citation insertion experience.

org-citar-insertion.png
Figure 2: Inserting a citation with the citar package

Asynchronous session evaluation

Since being featured in May’s post, we’ve had the initial python support expanded with support for R too. I have good reason to believe that more backends will join this list in the future.

To get started, just add :async to the header arguments of Python or R source blocks with a :session.

LaTeX environment #+results are now removed

LaTeX environments (i.e. \begin{} ... \end{} blocks) have been added to the list of #+results types that will be removed. This is bigger news than one might think, as it means that raw LaTeX environments are now a viable output for org-babel backends. This possesses a distinct advantage over :results latex as LaTeX environments can be rendered inline with org-latex-preview and are exported to more formats — for example HTML with MathJax.

This is likely going to be first seen in the new ob-julia backend (unreleased, currently in early development), but could well be utilised by other backends such as ob-octave, ob-mathematica (in contrib), ob-python (using SymPy), ob-calc and more.

ob-julia-latexify-rendered.png
Figure 3: Rendered LaTeX representations of some Julia values

More fontification

A number of new faces have been introduced to allow for improved theming capability, and better contextual hints in the agenda, namely: org-agenda-date-weekend-today, org-imminent-deadline, org-agenda-structure-secondary, and org-agenda-structure-filter.

Inline export snippets are now also fontified using the org-tag and font-lock-comment-face faces, to better stand out from surrounding text.

Export improvements

The HTML and LaTeX backends have both been given some love in this release of Org.

The HTML backend now supports customisation of the <meta> tags included with org-html-meta-tags, which should be particularly useful to anybody using org-publish for blogs or websites (in fact, this blog has been making use of it for some time now). A new variable has been introduced to help with styling, org-html-content-class ("content" by default) which is used as the CSS class for the top-level content wrapper. To further improve styling capabilities, org-html-style-default and org-html-scripts have been changed from constants to customisable variables.

The LaTeX backend (ox-latex) no longer has obsolete LaTeX packages in org-latex-default-packages-alist (grffile and texcomp have been removed). It also now supports arbitrary :float argument values, and accepts a six new arguments (in total) for verse (:lines, :center, :versewidth, and :latexcode) and quote blocks (:environment and :options).

Project changes

To reduce the maintainer burden, the contrib/ folder and a collection of rarely-used or barely-maintained ob-* backends have been moved to a new repo, org-contrib. Support for Emacs 24 (2012–2014) has also been dropped, and Org will now aim to support the three most recent major versions of Emacs.

CC0 To the extent possible under law, TEC has waived all copyright and related or neighboring rights to This Month in Org.