I have a *lot* of org files with a macro =if-backend= which enables me to decide what to export depending on the backend : #+begin_src org #+macro: if-backend (eval (if (org-export-derived-backend-p org-export-current-backend '$1) "$2")) #+end_src For instance, I use it to include =\hfill= in LaTeX family export engines but not in others (html for instance) : #+begin_src org #+macro: hfill {{{if-backend(latex, \\hfill{} )}}} #+end_src I generally use emacs 26.3 as distributed by Debian bullseyes (which offer org-mode version 9.1.9). On another box I need to work with a more recent org-mode, precisely 9.4. In that environment, due to an incompatible change introduced by [[https://orgmode.org/Changes_old.html#outline-container-org003add6][release 9.2]] the same macro has to be written in a different way : #+begin_src org #+macro: if-backend (eval (if (org-export-derived-backend-p org-export-current-backend (intern $1)) $2)) #+end_src And thus I need to change also the macro using it, for instance the =hfill= macro has to be written that way : #+begin_src org #+macro: hfill {{{if-backend(latex, \hfill{} )}}} #+end_src For now I need to work on the same files in these two different environment. Do anyone have an idea on how to be able whether to define the =if-backend= in a way that it can work in both org versions or if there is a way to define these macro in different ways depending on org version? I would like to let the definitions in org files and not in emacs init files. -- Bruno BEAUFILS