|
@@ -131,7 +131,9 @@
|
|
|
(:infojs-opt "INFOJS_OPT" nil nil)
|
|
|
;; Redefine regular options.
|
|
|
(:creator "CREATOR" nil org-html-creator-string)
|
|
|
- (:with-latex nil "tex" org-html-with-latex)))
|
|
|
+ (:with-latex nil "tex" org-html-with-latex)
|
|
|
+ ;; Retrieve LaTeX header for fragments.
|
|
|
+ (:latex-header "LATEX_HEADER" nil nil newline)))
|
|
|
|
|
|
|
|
|
;;; Internal Variables
|
|
@@ -2489,18 +2491,34 @@ CONTENTS is nil. INFO is a plist holding contextual information."
|
|
|
|
|
|
;;;; Latex Environment
|
|
|
|
|
|
-(defun org-html-format-latex (latex-frag processing-type)
|
|
|
- "Format a LaTeX fragment LATEX-FRAG into HTML."
|
|
|
+(defun org-html-format-latex (latex-frag processing-type info)
|
|
|
+ "Format a LaTeX fragment LATEX-FRAG into HTML.
|
|
|
+PROCESSING-TYPE designates the tool used for conversion. It is
|
|
|
+a symbol among `mathjax', `dvipng', `imagemagick', `verbatim' nil
|
|
|
+and t. See `org-html-with-latex' for more information. INFO is
|
|
|
+a plist containing export properties."
|
|
|
(let ((cache-relpath "") (cache-dir ""))
|
|
|
(unless (eq processing-type 'mathjax)
|
|
|
(let ((bfn (or (buffer-file-name)
|
|
|
(make-temp-name
|
|
|
- (expand-file-name "latex" temporary-file-directory)))))
|
|
|
+ (expand-file-name "latex" temporary-file-directory))))
|
|
|
+ (latex-header
|
|
|
+ (let ((header (plist-get info :latex-header)))
|
|
|
+ (and header
|
|
|
+ (concat (mapconcat
|
|
|
+ (lambda (line) (concat "#+LATEX_HEADER: " line))
|
|
|
+ (org-split-string header "\n")
|
|
|
+ "\n")
|
|
|
+ "\n")))))
|
|
|
(setq cache-relpath
|
|
|
(concat "ltxpng/"
|
|
|
(file-name-sans-extension
|
|
|
(file-name-nondirectory bfn)))
|
|
|
- cache-dir (file-name-directory bfn))))
|
|
|
+ cache-dir (file-name-directory bfn))
|
|
|
+ ;; Re-create LaTeX environment from original buffer in
|
|
|
+ ;; temporary buffer so that dvipng/imagemagick can properly
|
|
|
+ ;; turn the fragment into an image.
|
|
|
+ (setq latex-frag (concat latex-header latex-frag))))
|
|
|
(with-temp-buffer
|
|
|
(insert latex-frag)
|
|
|
(org-format-latex cache-relpath cache-dir nil "Creating LaTeX Image..."
|
|
@@ -2516,9 +2534,10 @@ CONTENTS is nil. INFO is a plist holding contextual information."
|
|
|
(attributes (org-export-read-attribute :attr_html latex-environment)))
|
|
|
(case processing-type
|
|
|
((t mathjax)
|
|
|
- (org-html-format-latex latex-frag 'mathjax))
|
|
|
+ (org-html-format-latex latex-frag 'mathjax info))
|
|
|
((dvipng imagemagick)
|
|
|
- (let ((formula-link (org-html-format-latex latex-frag processing-type)))
|
|
|
+ (let ((formula-link
|
|
|
+ (org-html-format-latex latex-frag processing-type info)))
|
|
|
(when (and formula-link (string-match "file:\\([^]]*\\)" formula-link))
|
|
|
;; Do not provide a caption or a name to be consistent with
|
|
|
;; `mathjax' handling.
|
|
@@ -2536,9 +2555,10 @@ CONTENTS is nil. INFO is a plist holding contextual information."
|
|
|
(processing-type (plist-get info :with-latex)))
|
|
|
(case processing-type
|
|
|
((t mathjax)
|
|
|
- (org-html-format-latex latex-frag 'mathjax))
|
|
|
+ (org-html-format-latex latex-frag 'mathjax info))
|
|
|
((dvipng imagemagick)
|
|
|
- (let ((formula-link (org-html-format-latex latex-frag processing-type)))
|
|
|
+ (let ((formula-link
|
|
|
+ (org-html-format-latex latex-frag processing-type info)))
|
|
|
(when (and formula-link (string-match "file:\\([^]]*\\)" formula-link))
|
|
|
(org-html--format-image (match-string 1 formula-link) nil info))))
|
|
|
(t latex-frag))))
|