diff --git a/contrib/lisp/ox-extra.el b/contrib/lisp/ox-extra.el index 187727b92..f4f0b7659 100644 --- a/contrib/lisp/ox-extra.el +++ b/contrib/lisp/ox-extra.el @@ -46,36 +46,37 @@ (require 'ox) (eval-when-compile (require 'cl)) -(defun org-latex-header-blocks-filter () - (let ((positions - (org-element-map (org-element-parse-buffer 'greater-element nil) 'export-block - (lambda (block) - (when (and (string= (org-element-property :type block) "LATEX") - (string= (org-export-read-attribute - :header block :header) - "yes")) - (list (org-element-property :begin block) - (org-element-property :end block) - (org-element-property :post-affiliated block))))))) - (mapc (lambda (pos) - (goto-char (nth 2 pos)) - (destructuring-bind - (beg end &rest ignore) - (org-edit-src-find-region-and-lang) - (let ((contents-lines (split-string - (buffer-substring-no-properties beg end) - "\n"))) - (delete-region (nth 0 pos) (nth 1 pos)) - (dolist (line contents-lines) - (insert (concat "#+latex_header: " - (replace-regexp-in-string "\\` *" "" line) - "\n")))))) - ;; go in reverse, to avoid wrecking the numeric positions - ;; earlier in the file - (reverse positions)))) +(defun org-latex-header-blocks-filter (backend) + (when (org-export-derived-backend-p backend 'latex) + (let ((positions + (org-element-map (org-element-parse-buffer 'greater-element nil) 'export-block + (lambda (block) + (when (and (string= (org-element-property :type block) "LATEX") + (string= (org-export-read-attribute + :header block :header) + "yes")) + (list (org-element-property :begin block) + (org-element-property :end block) + (org-element-property :post-affiliated block))))))) + (mapc (lambda (pos) + (goto-char (nth 2 pos)) + (destructuring-bind + (beg end &rest ignore) + (org-edit-src-find-region-and-lang) + (let ((contents-lines (split-string + (buffer-substring-no-properties beg end) + "\n"))) + (delete-region (nth 0 pos) (nth 1 pos)) + (dolist (line contents-lines) + (insert (concat "#+latex_header: " + (replace-regexp-in-string "\\` *" "" line) + "\n")))))) + ;; go in reverse, to avoid wrecking the numeric positions + ;; earlier in the file + (reverse positions))))) (defconst ox-extras - '((latex-header-blocks org-latex-latex-header-blocks-filter org-export-before-parsing-hook)) + '((latex-header-blocks org-latex-header-blocks-filter org-export-before-parsing-hook)) "A list of org export extras that can be enabled. Should be a list of items of the form (NAME FN HOOK). NAME is a