Matt Lundin <m...@imapmail.org> writes: > Chris Malone <chris.m.mal...@gmail.com> writes: > > (Note: When using gmail, please adjust the settings to send your > messages as plain text only instead of multipart/alternative.) > >> When I include the actual contents of my abstract, this preliminary material >> section (the #+begin ... #+end block) is rather large. I'd like to be able >> to put this material into a headline so that I could collapse it - but I >> don't want this headline exported as content of the main document. >> >> In other words, is there a property or tag that I can add to a headline that >> causes LaTeX export to ignore the fact that it is a headline (i.e. \chapter, >> \section, \subsection, etc.), but still export its contents? Something >> like: > > You could add a hook to remove headlines with a "prelim" tag: > > --8<---------------cut here---------------start------------->8--- > (defun my-org-export-remove-tagged-headlines (tag) > (save-excursion > (goto-char (point-min)) > (while (re-search-forward (concat ":" tag ":") nil t) > (delete-region (point-at-bol) (point-at-eol))))) > > (add-hook 'org-export-preprocess-hook (lambda () > (my-org-export-remove-tagged-headlines "prelim"))) > --8<---------------cut here---------------end--------------->8--- >
I found the very useful but sadly outdated snippet from 2011. If anyone is interested, the following snippet implements the same functionality within the new export framework. --8<---------------cut here---------------start------------->8--- (defun org-export-remove-prelim-headlines (tree backend info) "Remove headlines tagged \"prelim\" while retaining their contents before any export processing." (org-element-map tree org-element-all-elements (lambda (object) (when (and (equal 'headline (org-element-type object)) (member "prelim" (org-element-property :tags object))) (mapc (lambda (el) (let ((new-object (if (equal 'headline (org-element-type el)) (org-element-put-property el :level (1- (org-element-property :level el))) el))) (message "%s level %s" (org-element-property :raw-value new-object) (org-element-property :level new-object)) (org-element-insert-before new-object object))) (cddr object)) (org-element-extract-element object))) info nil org-element-all-elements) tree) (add-hook 'org-export-filter-parse-tree-functions 'org-export-remove-prelim-headlines) --8<---------------cut here---------------end--------------->8--- In addition it promotes all headlines under the removed "prelim"-tagged headline. This is useful to support structures like the following. --8<---------------cut here---------------start------------->8--- * Appendix :prelim: #+LaTeX: \begin{appendices} ** Definitions ** Data Sets ** Tooling #+LaTeX: \end{appendices} --8<---------------cut here---------------end--------------->8--- Best, -- Eric Schulte https://cs.unm.edu/~eschulte PGP: 0x614CA05D (see https://u.fsf.org/yw)