Hi Vicente, Thanks for catching another bug.
Vicente Vera <vicente...@gmail.com> 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 <ras...@gmx.us> 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 <vicente...@gmail.com> <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