From mboxrd@z Thu Jan 1 00:00:00 1970 From: Carsten Dominik Subject: [Accepted] Bug: possible bug in latex export [7.01trans (release_6.36.735.g15ca.dirty)] Date: Sun, 15 Aug 2010 08:36:19 +0200 (CEST) Message-ID: <20100815063619.1E7E41AF179C@carsten-dominiks-macbook-pro.local> References: <22496.1280243082@maps> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from [140.186.70.92] (port=45646 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Okx6d-0003F2-0C for emacs-orgmode@gnu.org; Mon, 16 Aug 2010 06:39:57 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1Okx6X-00007t-9N for emacs-orgmode@gnu.org; Mon, 16 Aug 2010 06:39:50 -0400 Received: from u016822.science.uva.nl ([146.50.39.34]:52516 helo=carsten-dominiks-macbook-pro.local) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1Okx6X-00007b-1C for emacs-orgmode@gnu.org; Mon, 16 Aug 2010 06:39:45 -0400 List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: emacs-orgmode@gnu.org 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 -0000 > From: Stephen Eglen > X-Patchwork-Id: 175 > Message-Id: <22496.1280243082@maps> > To: David Maus > Cc: emacs-orgmode@gnu.org, Stephen Eglen > > > 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) >