Patch 175 (http://patchwork.newartisans.com/patch/175/) is now Accepted.
Maintainer comment: No comment
This relates to the following submission:
http://mid.gmane.org/%3C22496.1280243082%40maps%3E
Here is the original message containing the patch:
Content-Type: text/plain; charset=utf-8
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Subject: [Orgmode] Bug: possible bug in latex export [7.01trans
(release_6.36.735.g15ca.dirty)]
Date: Tue, 27 Jul 2010 20:04:42 -
From: Stephen Eglen s.j.eg...@damtp.cam.ac.uk
X-Patchwork-Id: 175
Message-Id: 22496.1280243...@maps
To: David Maus dm...@ictsoc.de
Cc: emacs-orgmode@gnu.org, Stephen Eglen s.j.eg...@damtp.cam.ac.uk
FYI: This is a know limitation of the LaTeX exporter[1] and the
current state of this issue (dealing with skipped levels) is that
patches for the problem are welcome. I agree that even if
skipped-level-headlines are not allowed, they shouldn't be silently
droped neither.
Best,
-- David
[1] http://thread.gmane.org/gmane.emacs.orgmode/26413
I think I have a patch for this, see below. I've tested it briefly to
see that it works with both oddeven and odd level headings, but I would
appreciate other people taking a closer look/checking that it doesn't
break other things. I think I found the problem, in that if you have a
structure like
* A
*** B
(i.e. a level one and a level 3)
after it has found the level 1 content, it expects to find a level 2
subtree, whereas in fact there could be a level 2+ tree. See the
comment in the code for the change I made.
Stephen
diff --git a/lisp/org-latex.el b/lisp/org-latex.el
index 24dd8c1..8530723 100644
--- a/lisp/org-latex.el
+++ b/lisp/org-latex.el
@@ -937,13 +937,28 @@ Return a list reflecting the document structure.
(defun org-export-latex-parse-subcontent (level odd)
Extract the subcontent of a section at LEVEL.
If ODD Is non-nil, assume subcontent only contains odd sections.
- (if (not (org-re-search-forward-unprotected
- (concat ^\\(\\(?:\\*\\)\\{
- (number-to-string (+ (if odd 4 2) level))
- \\}\\) \\(.*\\)$)
- nil t))
- nil ; subcontent is nil
-(org-export-latex-parse-global (+ (if odd 2 1) level) odd)))
+
+ (let (nstars new-level)
+;; In the search, we should not assume there will be exactly
+;; LEVEL+1 stars in the next heading, as there may be more than
+;; that number of stars. hence the regexp should be \\*{N,}
+;; rather than just \\*{N} (i.e. no upper bound, but N is minimum
+;; number of stars to expect.)
+;; We then have to check how many stars were found, rather than
+;; assuming there were exactly N.
+(when (org-re-search-forward-unprotected
+(concat ^\\(\\(?:\\*\\)\\{
+(number-to-string (+ (if odd 4 2) level))
+,\\}\\) \\(.*\\)$)
+nil t)
+ (setq nstars (1- (- (match-end 1) (match-beginning 1
+ (setq new-level (if odd
+ (/ (+ 3 nstars) 2);; not entirely sure why +3!
+ nstars)))
+(if nstars
+ (org-export-latex-parse-global new-level odd)
+ nil) ; subcontent is nil
+ ))
;;; Rendering functions:
(defun org-export-latex-global (content)
___
Emacs-orgmode mailing list
Please use `Reply All' to send replies to the list.
Emacs-orgmode@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-orgmode