emacs-orgmode
[Top][All Lists]
Advanced

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

[O] [PATCH] Allow mixed export of numbered and unnumbered sections in La


From: Lawrence Mitchell
Subject: [O] [PATCH] Allow mixed export of numbered and unnumbered sections in LaTeX
Date: Tue, 22 Mar 2011 14:26:14 +0000
User-agent: Gnus/5.110014 (No Gnus v0.14) Emacs/24.0.50 (gnu/linux)

* lisp/org-latex.el (org-export-latex-subcontent): Deal specially with
the case that NUM is an integer.

We would sometimes like to have numbered \sections in LaTeX export but
unnumbered \subsections and so forth.  That is, use the starred
equivalents for all sectioning commands below a certain level.
Previously, the num: option specification could only specify whether
sections should be numbered or unnumbered at all levels.  We now treat
an integer value specially, if num:N is supplied then the highest N
levels are numbered, and lower levels are exported without numbering.
---
 lisp/org-latex.el |    7 ++++++-
 1 files changed, 6 insertions(+), 1 deletions(-)

[...]
Wouldn't it be nice if #+OPTIONS: num:2 exported
\section{foo}
\subsection{bar}
\subsubsection*{baz}

It turns out the patch is relatively straightforward.  I haven't
included a doc update, but could do so if required.


diff --git a/lisp/org-latex.el b/lisp/org-latex.el
index fbdeb5e..7a3c629 100644
--- a/lisp/org-latex.el
+++ b/lisp/org-latex.el
@@ -1151,7 +1151,9 @@ and its content."
 
 (defun org-export-latex-subcontent (subcontent num)
   "Export each cell of SUBCONTENT to LaTeX.
-If NUM, export sections as numerical sections."
+If NUM is non-nil export numbered sections, otherwise use unnumbered
+sections.  If NUM is an integer, export the highest NUM levels as
+numbered sections and lower levels as unnumbered sections."
   (let* ((heading (cdr (assoc 'heading subcontent)))
         (level (- (cdr (assoc 'level subcontent))
                   org-export-latex-add-level))
@@ -1187,6 +1189,9 @@ If NUM, export sections as numerical sections."
      ;; Normal conversion
      ((<= level depth)
       (let* ((sec (nth (1- level) sectioning))
+            (num (if (integerp num)
+                     (>= num level)
+                   num))
             start end)
        (if (consp (cdr sec))
            (setq start (nth (if num 0 2) sec)
-- 
1.7.4.rc2.18.gb20e9




reply via email to

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