emacs-orgmode
[Top][All Lists]
Advanced

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

Re: [O] [release_8.3beta-1062-gce4e64] Error when exporting to ODT


From: Rasmus
Subject: Re: [O] [release_8.3beta-1062-gce4e64] Error when exporting to ODT
Date: Thu, 23 Apr 2015 12:44:46 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux)

Hi Vicente,

Thanks for catching another bug.

Vicente Vera <address@hidden> writes:

> Just tried to export an Org file to ODT but this error appeared (taken
> from the Messages buffer):
>
> ...
> LaTeX to MathML converter not available.
> Formatting LaTeX using verbatim
> OpenDocument export failed: Assertion failed: (funcall predicate element info)
>
> Tried with a MWE and with a minimal init.el (because of
> org-export-backends and the "odt" symbol) but the error persists.

Yeah, my guess is that the error is in org-odt-format-label.  It used to
be that an inline formula would not have a label.  But now it does.  So
label is non-nil.  The attached patch seems to fix it, but
org-odt-format-label is pretty fragile in its assumptions...

I also pushed a fix to org.el that may be related if you e.g. use
latexmlmath.

For the record, it can be reproduced with the following example from 
emacs -q.

—Rasmus

* set up                                                           :noexport:
#+BEGIN_SRC emacs-lisp
  (require 'ox-odt)
  (setq org-latex-to-mathml-convert-command
          "latexmlmath \"%i\" --presentationmathml=%o")
#+END_SRC
* test
  see \(x\)

-- 
Don't panic!!!
>From aad7dd24864f3ce988a67061a391d85e649aa375 Mon Sep 17 00:00:00 2001
From: Rasmus <address@hidden>
Date: Thu, 23 Apr 2015 12:35:43 +0200
Subject: [PATCH 1/2] ox-odt: Fix bug links without labels.

* ox-odt.el (org-odt-format-label): Determine label more carefully.

Reported-by: Vicente Vera <address@hidden>
<http://permalink.gmane.org/gmane.emacs.orgmode/97090>
---
 lisp/ox-odt.el | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/lisp/ox-odt.el b/lisp/ox-odt.el
index a8544a4..faf0b1c 100644
--- a/lisp/ox-odt.el
+++ b/lisp/ox-odt.el
@@ -2152,13 +2152,15 @@ Return value is a string if OP is set to `reference' or 
a cons
 cell like CAPTION . SHORT-CAPTION) where CAPTION and
 SHORT-CAPTION are strings."
   (assert (memq (org-element-type element) '(link table src-block paragraph)))
-  (let* ((caption-from
+  (let* ((element-or-parent
          (case (org-element-type element)
            (link (org-export-get-parent-element element))
            (t element)))
         ;; Get label and caption.
-        (label (org-export-get-reference element info))
-        (caption (let ((c (org-export-get-caption caption-from)))
+        (label (and (or (org-element-property :name element)
+                        (org-element-property :name element-or-parent))
+                    (org-export-get-reference element-or-parent info)))
+        (caption (let ((c (org-export-get-caption element-or-parent)))
                    (and c (org-export-data c info))))
         ;; FIXME: We don't use short-caption for now
         (short-caption nil))
-- 
2.3.6


reply via email to

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