Is there an equivalent of Org-mode's b_ignoreheading for non-beamer documents?

emacs, org-mode

Solution

There is no default support for what you are asking. However you can use a preprocess hook to get a similar output. Here is an example for LaTeX export:

;; backend aware export preprocess hook
(defun sa-org-export-preprocess-hook ()
  "My backend aware export preprocess hook."
  (save-excursion
    (when (eq org-export-current-backend 'latex)
      ;; ignoreheading tag for bibliographies and appendices
      (let* ((tag "ignoreheading"))
        (org-map-entries (lambda ()
                           (delete-region (point-at-bol) (point-at-eol)))
                         (concat ":" tag ":"))))))

(add-hook 'org-export-preprocess-hook 'sa-org-export-preprocess-hook)

This is a snippet from my org-mode setup. You can see the original on github. The above code will ignore headings tagged with `ignoreheading`, e.g.

* Heading 1
* Heading 2                           :ignoreheading:
+ Some text
+ an item

gets exported as:

\section{Heading 1}
\label{sec-1}

\begin{itemize}
\item Some text
\item an item
\end{itemize}

Caveat: There is a known issue with this solution. It does not work when you try this on the very first headline. I don't understand why that is the case, hopefully I'll have time someday to investigate.

Workaround to caveat: The above limitation can be circumvented for LaTeX export by using a line like this after the org file header:

\include{preamble.tex}

The `preamble.tex` file can include sections like an abstract or acknowledgements. However you should note this makes your org file very closely tied to the export backend. It would become non-trivial to export the same org file to HTML for example.

Note: For a similar setup with the new export framework (Org 8.0 or higher), use the following:

(defun sa-ignore-headline (contents backend info)
  "Ignore headlines with tag `ignoreheading'."
  (when (and (org-export-derived-backend-p backend 'latex 'html 'ascii)
          (string-match "\\`.*ignoreheading.*\n"
                (downcase contents)))
    (replace-match "" nil nil contents)))

(add-to-list 'org-export-filter-headline-functions 'sa-ignore-headline)

Problem

When using Org-mode to create beamer presentation it is possible to set the property of a heading such that the exported heading is not shown but only its contents. For instance, the following ``` #+title: Test #+options: toc:nil #+latex_class: beamer #+startup: beamer #+BEAMER_FRAME_LEVEL: 2 * Ignored heading :B_ignoreheading: :PROPERTIES: :BEAMER_env: ignoreheading :END: Text ``` Result in a frame with "Text" only and no heading. Is this kind of functionality available for non-beamer documents? That is, is it possible to tell Org-mode to not export a heading but only its contents? For instance, would it be possible to make Org-mode export the following ``` #+title: Test * Ignored heading Text ``` without exporting the heading "Ignored heading" but only "Text"? If I export ``` #+title: Test * Text ``` (note the space after `*`) to LaTeX I get the following (I only included the relevant part): ``` \section{} Text ``` But this is not what I want. I want the heading to be completely ignored in the export so that I would get the following (again I only include the relevant part): ``` Text ```

Original source