October 2021
Release 9.5
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.
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.
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.
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.
More link formatting options with org-capture
A new formatting directive, %L
has been introduced which provides the bare link
target. This allows for links with automatically generated descriptions 🙂.
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.