Dear Org maintainers

HTML export of equations leads to an error since my last update from
MELPA, yesterday. I can trace it back to the invocation of
org-element-context in a temporary buffer in fundamental mode. A more
exact analysis follows.

Emacs  : GNU Emacs 24.5.1 (x86_64-unknown-linux-gnu, GTK+ Version 3.10.8)
 of 2015-05-04 on dflt1w
Package: Org-mode version 8.3.3 (8.3.3-17-gce80a0-elpaplus @
/home/dfeich/.emacs.d/elpa/org-plus-contrib-20160118/)


The error can be reproduced using a minimal org file with these contents:

#+BEGIN_EXAMPLE
* Equation export error

  This equation produces an error on html export

  $$
    U = R \cdot I
  $$

#+END_EXAMPLE

Upon export to html the following error and backtrace result (I took
the liberty of cutting the lines to avoid special characters).

#+BEGIN_EXAMPLE
Debugger entered--Lisp error: (wrong-type-argument stringp nil)
  looking-at(nil)
  byte-code("\212\214~\210...
  org-element-context()
  org-format-latex("" "" nil "Creating LaTeX Image..." nil mathjax)
  org-html-format-latex("$$\n ...
  org-html-latex-fragment((latex-fragment ...
  org-export-data((latex-fragment ...
  #[(element)...
  mapconcat(#[(element)...
  org-export-data((paragraph...
  #[(element) "\302...
  mapconcat(#[(element)...
  org-export-data((section...
  #[(element) "\302...
  mapconcat(#[(element)...
  org-export-data((headline...
  #[(element) "\302...
  mapconcat(#[(element) "\302...
  org-export-data((org-data nil (headline (:raw-value "Equation export
error" :begin 1 :end 108 :pre-blank 1 :contents-begin 26 :contents-end 104
:level 1 :priority nil :tags nil :todo-keyword nil :todo-type nil
:post-blank 2 :footnote-section-p nil :archivedp nil :commentedp nil
:post-affiliated 1 :title (#("Equation export error" 0 21 (:parent #1)))
:parent #0) (section (:begin 26 :end 108 :contents-begin 26 :contents-end
104 :post-blank 2 :post-affiliated 26 :parent #1) (paragraph (:begin 26
:end 76 :contents-begin 26 :contents-end 75 :post-blank 1 :post-affiliated
26 :parent #2) #("This equation produces an error on html export\n" 0 47
(:parent #3))) (paragraph (:begin 76 :end 104 :contents-begin 76
:contents-end 104 :post-blank 0 :post-affiliated 76 :parent #2) ""
(latex-fragment (:value "$$\n    U = R \\cdot I\n  $$" :begin 78 :end 103
:post-blank 0 :parent #3)) #("\n" 0 1 (:parent #3)))))) (:export-options
nil :input-buffer "err-example.org" :input-file "/tmp/html-exp-error/
err-example.org" :html-doctype "xhtml-strict" :html-container "div"
:description nil :keywords nil :html-html5-fancy nil :html-link-use-abs-url
nil :html-link-home "" :html-link-up "" :html-mathjax "" :html-postamble
auto :html-preamble t :html-head "" :html-head-extra "" :subtitle nil
:html-head-include-default-style t :html-head-include-scripts t
:html-allow-name-attribute-in-anchors nil :html-divs ((preamble "div"
"preamble") (content "div" "content") (postamble "div" "postamble"))
:html-checkbox-type ascii :html-extension "html" :html-footnote-format
"<sup>%s</sup>" :html-footnote-separator "<sup>, </sup>" ...))
  org-export-as(html nil nil nil (:output-file "./err-example.html"))
  org-export-to-file(html "./err-example.html" nil nil nil nil nil)
  org-html-export-to-html(nil nil nil nil)
  org-export-dispatch(nil)
  call-interactively(org-export-dispatch nil nil)
  command-execute(org-export-dispatch)
#+END_EXAMPLE

>From the debugger I can see that the org-element-context is executed in a
temporary buffer:

: Debugger Eval ((point)): 1
: Debugger Eval (major-mode): fundamental-mode
: Debugger Eval ((buffer-name)):  *temp*-831342
: Debugger Eval ((buffer-string)): $$
:     U = R \cdot I
:   $$


I can reproduce the error by creating a file and filling it with the
contents
that "buffer-string" yielded and opening it in fundamental mode.
#+BEGIN_EXAMPLE
$$
    U = R \cdot I
$$
#+END_EXAMPLE

When I now execute "org-element-context" with point at 1 then I get the
same error:

Debugger entered--Lisp error: (wrong-type-argument stringp nil)
  looking-at(nil)
  byte-code("\212\214~\210...
  org-element-context()
  eval((org-element-context) nil)
  eval-expression((org-element-context) nil)
  call-interactively(eval-expression nil nil)
  command-execute(eval-expression)

If the buffer is set to org-mode, the error does not appear, and
org-element-context
correctly recognizes the text as a latex-fragment.


Best regards,
Derek

Reply via email to