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