emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Orgmode] Re: Wow -- adding images to an org file


From: address@hidden
Subject: Re: [Orgmode] Re: Wow -- adding images to an org file
Date: Wed, 12 May 2010 07:20:34 +0800


I very much like the idea of native inline image display in Org-mode but  can't seem to make it work.

Given a 6.36 snapshot or 6.36 release and these org file contents

* Test image
Test image
[[Screenshot.png]]


I hoped org would display that image after C-c C-x C-v. Rather Org-mode returns "No images to display inline".

I've tried different ways of linking that image, different image formats, relative vs complete paths, and my regular .emacs vs  a near empty one and always the same result. If I toggle iimage-mode the image displays fine per se but does not affect how Org-mode works.

Seems clear I am missing something simple. What?


Cheers,

Robert Cunningham



On Tue May 11 17:29 , Dan Davison sent:

Russell Adams <address@hidden> writes:

> On Sat, May 08, 2010 at 12:51:41PM +0200, Carsten Dominik wrote:
>> We have now native inline image display in Org-mode, you can toggle it
>> with
>>
>> C-c C-x C-v
>>
>> This implementation uses overlays instead of text properties and
>> therefore does not interfere with font-lock.
>>
>> - Carsten
>
> I'm using Org-Babel and R, and when I use C-c C-c to update the output
> from a block of code, the image in emacs doesn't change.
>
> Ideas? v6.36

Hi Russell,

I struggled with this when images were text properties, i.e. before
Carsten's implementation using overlays (thanks for C-c C-x C-v
Carsten!)

I think the answer may be clear-image-cache. I just tried that and C-c
C-x C-v showed the new image afterwards. I'm not sure whether the
following is acceptable in terms of emacs ecology, but it seems to do
the trick:

--8<---------------cut here---------------start------------->8---
diff --git a/lisp/org.el b/lisp/org.el
index c52aeb0..85f1219 100644
--- a/lisp/org.el
+++ b/lisp/org.el
@@ -15507,6 +15507,7 @@ with a description part will be inlined."
"Remove inline display of images."
(interactive)
(mapc 'delete-overlay org-inline-image-overlays)
+ (clear-image-cache)
(setq org-inline-image-overlays nil))
--8<---------------cut here---------------end--------------->8---

Note also that we can make image display happen automatically after
executing a babel block:

(add-hook 'org-babel-after-execute-hook 'org-display-inline-images)

In fact that was what I had in mind when adding that hook; it was just
waiting for Carsten's function. So in my mind this gets us some of the
way towards org-babel as an "interactive notebook", as discussed in
another recent thread.

Dan

p.s. For what its worth, here is the code I was using to make images
appear using text properties and Org font lock. I was intending to post
this when I was happy with the image refresh stuff, but it is probably
redundant in light of the new functions using overlays. A certain amount
of messing about with image redisplay and cache functions is evident.

--8<---------------cut here---------------start------------->8---
(defun dan/org-fontify-image-links (limit)
"Display links to images as images.
If the description part of the link is empty display the image,
otherwise do nothing. This function is intended to be called
during font-lock fontification."
(let ((case-fold-search t) file image)
(and dan/org-display-inline-images
(re-search-forward
(concat "\\[\\[file:\\(" iimage-mode-image-filename-regex "\\)\\]\\]") limit t)
(setq file (match-string 1))
(setq file (iimage-locate-file file (list default-directory)))
(setq image (create-image file))
(add-text-properties (match-beginning 0) (match-end 0) (list 'display image))
;; (clear-image-cache)
(image-refresh image)
;; (redisplay)
;; (redraw-frame)
;; (redraw-display)
;; (image-refresh image)
)))

(setq dan/org-display-inline-images t)
(add-hook 'org-font-lock-hook 'dan/org-fontify-image-links)
--8<---------------cut here---------------end--------------->8---



>
> Thanks.
>
> ------------------------------------------------------------------
> Russell Adams address@hidden
>
> PGP Key ID: 0x1160DCB3 http://www.adamsinfoserv.com/
>
> Fingerprint: 1723 D8CA 4280 1EC9 557F 66E8 1154 E018 1160 DCB3
>
> _______________________________________________
> Emacs-orgmode mailing list
> Please use `Reply All' to send replies to the list.
> address@hidden
> http://lists.gnu.org/mailman/listinfo/emacs-orgmode

_______________________________________________
Emacs-orgmode mailing list
Please use `Reply All' to send replies to the list.
address@hidden
http://lists.gnu.org/mailman/listinfo/emacs-orgmode
)


reply via email to

[Prev in Thread] Current Thread [Next in Thread]