emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [O] org-export-preprocess-hook and the new exporter (was Re: Using O


From: Nicolas Goaziou
Subject: Re: [O] org-export-preprocess-hook and the new exporter (was Re: Using Org for a dissertation)
Date: Fri, 18 May 2012 12:08:47 +0200

Hello,

Eric S Fraga <address@hidden> writes:

> This is probably more for Nicolas... and apologies for hijacking the
> thread slightly!
>
> I was intrigued by the comment above regarding the ignoreheading
> tag.  Sounded just like what I needed.  However, it doesn't do anything
> with org /out-of-the-box/.  A little searching led to Suvayu's posting
> in stackoverflow [1] and that does the job nicely, but only for the
> standard (read: old) export engine.
>
> The question is: is there an equivalent hook for the new exporter?

For heavy structure modifications (like headlines removal), there is
`org-export-before-parsing-hook' and the dynamically bound variable
`org-export-current-backend'.

Another way to solve the problem could be to implement your own headline
parser:

#+BEGIN_SRC emacs-lisp
(defun my-e-latex-headline (headline contents info)
  (if (member "ignoreheading" (org-element-property :tags headline)) contents
    (org-e-latex-headline headline contents info)))
#+END_SRC

Then you can either install it in the current `e-latex' back-end:

#+BEGIN_SRC emacs-lisp
(add-to-list 'org-e-latex-translate-table '(headline . my-e-latex-headline))
#+END_SRC

Or you can define your own back-end for this purpose:

#+BEGIN_SRC emacs-lisp
(org-export-define-derived-backend dissertation e-latex
  :translate-alist ((template . my-e-latex-headline)))

(defun org-dissertation-export-to-pdf
  (&optional subtreep visible-only body-only ext-plist pub-dir)
  (interactive)
  (org-e-latex-compile
   (let ((outfile (org-export-output-file-name ".tex" subtreep pub-dir)))
     (org-export-to-file
      'dissertation outfile subtreep visible-only body-only ext-plist))))
#+END_SRC

You need a recent Org version to do this, though.


Regards,

-- 
Nicolas Goaziou



reply via email to

[Prev in Thread] Current Thread [Next in Thread]