From 5c07b4522c65cde8be8e916804466a5c7b597018 Mon Sep 17 00:00:00 2001 From: Jamie Forth Date: Mon, 21 Jan 2019 18:01:13 +0000 Subject: [PATCH] ox-beamer: Export overlay specification for notes * ox-beamer.el (org-beamer-headline): Pass overlay specification to beamer `\note{}' command. This is useful for animating multiple slides within a single frame and displaying only relevant note for each step. TINYCHANGE --- etc/ORG-NEWS | 4 ++++ lisp/ox-beamer.el | 23 ++++++++++++++++------- 2 files changed, 20 insertions(+), 7 deletions(-) diff --git a/etc/ORG-NEWS b/etc/ORG-NEWS index 7933a49fd..c0aaf88af 100644 --- a/etc/ORG-NEWS +++ b/etc/ORG-NEWS @@ -54,6 +54,10 @@ alternative was removed and there is no more a :use-xcolor options since now it's implicitly always true. ** New features +*** Handle overlay specification for notes in Beamer export + +This aligns Beamer notes with slide overlays. + *** Add a dispatcher command to insert dynamic blocks You can add dynamic block into ~org-dynamic-block-alist~ with function diff --git a/lisp/ox-beamer.el b/lisp/ox-beamer.el index 05894ffab..7811dd6b5 100644 --- a/lisp/ox-beamer.el +++ b/lisp/ox-beamer.el @@ -645,13 +645,22 @@ as a communication channel." contents)) ;; Case 4: HEADLINE is a note. ((member environment '("note" "noteNH")) - (format "\\note{%s}" - (concat (and (equal environment "note") - (concat - (org-export-data - (org-element-property :title headline) info) - "\n")) - (org-trim contents)))) + (concat "\\note" + ;; Overlay specification. + (let ((overlay (org-element-property :BEAMER_ACT headline))) + (when overlay + (org-beamer--normalize-argument + overlay + (if (string-match "\\`\\[.*\\]\\'" overlay) + 'defaction 'action)))) + (format "{%s}" + (concat (and (equal environment "note") + (concat + (org-export-data + (org-element-property :title headline) + info) + "\n")) + (org-trim contents))))) ;; Case 5: HEADLINE is a frame. ((= level frame-level) (org-beamer--format-frame headline contents info))