> > - Carsten > > On Nov 16, 2009, at 1:07 AM, Eric Schulte wrote: > >> Hi, >> >> The attached patch changes the latex fragment image generation so that >> it saves images into files named by the sha1 hash of the latex source >> code. By checking for the existence of image files before image >> generation the regeneration of identical images is avoided. >> >> In practice I find that this greatly speeds up export to html and the >> `org-preview-latex-fragment' command. >> >> Cheers -- Eric >> >> From 13e1c48fa6cac43b0c87ca0fbc8e349f7a9fa864 Mon Sep 17 00:00:00 2001 >> From: Eric Schulte >> Date: Sun, 15 Nov 2009 17:00:09 -0700 >> Subject: [PATCH] latex fragment images cached using sha1 hash keys >> >> Latex fragment images are now saved in files named by the sha1 hash >> of the latex text used to create the image. By checking if files >> exist before images generation the regeneration of identical latex >> images is avoided. >> --- >> lisp/ChangeLog | 6 ++++++ >> lisp/org.el | 18 +++++++----------- >> 2 files changed, 13 insertions(+), 11 deletions(-) >> >> diff --git a/lisp/ChangeLog b/lisp/ChangeLog >> index 339f248..f18755c 100755 >> --- a/lisp/ChangeLog >> +++ b/lisp/ChangeLog >> @@ -1,3 +1,9 @@ >> +2009-11-16 Eric Schulte >> + >> + * org.el (org-format-latex): Latex images are now saved to files >> + named by the sha1 hash of the latex source text avoiding >> + regeneration of identical images. >> + >> 2009-11-15 Carsten Dominik >> >> * org-wl.el (org-wl-store-link): Handle the case that >> diff --git a/lisp/org.el b/lisp/org.el >> index bf6573b..46348fc 100644 >> --- a/lisp/org.el >> +++ b/lisp/org.el >> @@ -14550,15 +14550,9 @@ Some of the options can be changed using >> the variable >> (opt org-format-latex-options) >> (matchers (plist-get opt :matchers)) >> (re-list org-latex-regexps) >> - (cnt 0) txt link beg end re e checkdir >> + (cnt 0) txt hash link beg end re e checkdir >> executables-checked >> m n block linkfile movefile ov) >> - ;; Check if there are old images files with this prefix, and >> remove them >> - (when (file-directory-p todir) >> - (mapc 'delete-file >> - (directory-files >> - todir 'full >> - (concat (regexp-quote prefixnodir) "_[0-9]+\\.png$")))) >> ;; Check the different regular expressions >> (while (setq e (pop re-list)) >> (setq m (car e) re (nth 1 e) n (nth 2 e) >> @@ -14576,9 +14570,10 @@ Some of the options can be changed using >> the variable >> (setq txt (match-string n) >> beg (match-beginning n) end (match-end n) >> cnt (1+ cnt) >> - linkfile (format "%s_%04d.png" prefix cnt) >> - movefile (format "%s_%04d.png" absprefix cnt) >> link (concat block "[[file:" linkfile "]]" block)) >> + (setq hash (sha1 txt) >> + linkfile (format "%s_%s.png" prefix hash) >> + movefile (format "%s_%s.png" absprefix hash)) >> (if msg (message msg cnt)) >> (goto-char beg) >> (unless checkdir ; make sure the directory exists >> @@ -14592,8 +14587,9 @@ Some of the options can be changed using the >> variable >> "dvipng" "needed to convert LaTeX fragments to images") >> (setq executables-checked t)) >> >> - (org-create-formula-image >> - txt movefile opt forbuffer) >> + (unless (file-exists-p movefile) >> + (org-create-formula-image >> + txt movefile opt forbuffer)) >> (if overlays >> (progn >> (mapc (lambda (o) >> -- >> 1.6.4.73.gc144 >> >> _______________________________________________ >> Emacs-orgmode mailing list >> Remember: use `Reply All' to send replies to the list. >> Emacs-orgmode@gnu.org >> http://lists.gnu.org/mailman/listinfo/emacs-orgmode > > - Carsten