Browse Source

org-e-html: Fix mathjax

Jambunathan K 13 years ago
parent
commit
4d58568076
1 changed files with 30 additions and 35 deletions
  1. 30 35
      EXPERIMENTAL/org-e-html.el

+ 30 - 35
EXPERIMENTAL/org-e-html.el

@@ -120,7 +120,8 @@
     (:html-preamble nil nil org-e-html-preamble)
     (:html-preamble nil nil org-e-html-preamble)
     (:html-table-tag nil nil org-e-html-table-tag)
     (:html-table-tag nil nil org-e-html-table-tag)
     (:xml-declaration nil nil org-e-html-xml-declaration)
     (:xml-declaration nil nil org-e-html-xml-declaration)
-    (:LaTeX-fragments nil "LaTeX" org-export-with-LaTeX-fragments))
+    (:LaTeX-fragments nil "LaTeX" org-export-with-LaTeX-fragments)
+    (:mathjax "MATHJAX" nil "" space))
   "Alist between export properties and ways to set them.
   "Alist between export properties and ways to set them.
 
 
 The car of the alist is the property name, and the cdr is a list
 The car of the alist is the property name, and the cdr is a list
@@ -1567,39 +1568,31 @@ This function shouldn't be used for floats.  See
 
 
 (defun org-e-html-mathjax-config (template options in-buffer)
 (defun org-e-html-mathjax-config (template options in-buffer)
   "Insert the user setup into the matchjax template."
   "Insert the user setup into the matchjax template."
-  (let (name val (yes "   ") (no "// ") x)
-    (mapc
-     (lambda (e)
-       (setq name (car e) val (nth 1 e))
-       (if (string-match (concat "\\<" (symbol-name name) ":") in-buffer)
-	   (setq val (car (read-from-string
-			   (substring in-buffer (match-end 0))))))
-       (if (not (stringp val)) (setq val (format "%s" val)))
-       (if (string-match (concat "%" (upcase (symbol-name name))) template)
-	   (setq template (replace-match val t t template))))
-     options)
-    (setq val (nth 1 (assq 'mathml options)))
-    (if (string-match (concat "\\<mathml:") in-buffer)
-	(setq val (car (read-from-string
-			(substring in-buffer (match-end 0))))))
-    ;; Exchange prefixes depending on mathml setting
-    (if (not val) (setq x yes yes no no x))
-    ;; Replace cookies to turn on or off the config/jax lines
-    (if (string-match ":MMLYES:" template)
-	(setq template (replace-match yes t t template)))
-    (if (string-match ":MMLNO:" template)
-	(setq template (replace-match no t t template)))
-    ;; Return the modified template
-    template))
-
-(defun org-e-html-mathjax (info)
-  (when (or (eq (plist-get info :HTML-fragments) 'mathjax)
-	    (and org-export-have-math
-		 (eq (plist-get info :HTML-fragments) t)))
-    (org-e-html-mathjax-config
-     org-e-html-mathjax-template
-     org-e-html-mathjax-options
-     (or (plist-get info :mathjax) ""))))
+  (when (member (plist-get info :LaTeX-fragments) '(mathjax t))
+    (let (name val (yes "   ") (no "// ") x)
+      (mapc
+       (lambda (e)
+	 (setq name (car e) val (nth 1 e))
+	 (if (string-match (concat "\\<" (symbol-name name) ":") in-buffer)
+	     (setq val (car (read-from-string
+			     (substring in-buffer (match-end 0))))))
+	 (if (not (stringp val)) (setq val (format "%s" val)))
+	 (if (string-match (concat "%" (upcase (symbol-name name))) template)
+	     (setq template (replace-match val t t template))))
+       options)
+      (setq val (nth 1 (assq 'mathml options)))
+      (if (string-match (concat "\\<mathml:") in-buffer)
+	  (setq val (car (read-from-string
+			  (substring in-buffer (match-end 0))))))
+      ;; Exchange prefixes depending on mathml setting
+      (if (not val) (setq x yes yes no no x))
+      ;; Replace cookies to turn on or off the config/jax lines
+      (if (string-match ":MMLYES:" template)
+	  (setq template (replace-match yes t t template)))
+      (if (string-match ":MMLNO:" template)
+	  (setq template (replace-match no t t template)))
+      ;; Return the modified template
+      template)))
 
 
 (defun org-e-html-preamble (info)
 (defun org-e-html-preamble (info)
   (when (plist-get info :html-preamble)
   (when (plist-get info :html-preamble)
@@ -1732,7 +1725,9 @@ original parsed data.  INFO is a plist holding export options."
 <head>"
 <head>"
    (org-e-html-meta-info info)		; meta
    (org-e-html-meta-info info)		; meta
    (org-e-html-style info)		; style
    (org-e-html-style info)		; style
-   (org-e-html-mathjax info)		; mathjax
+   (org-e-html-mathjax-config		; mathjax
+    org-e-html-mathjax-template org-e-html-mathjax-options
+    (or (plist-get info :mathjax) ""))
    "
    "
 </head>"
 </head>"