[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