From mboxrd@z Thu Jan 1 00:00:00 1970 From: "robut@iinet.net.au" Subject: Re: Re: Wow -- adding images to an org file Date: Wed, 12 May 2010 07:20:34 +0800 Message-ID: <3950.1273620034@iinet.net.au> Reply-To: robut@iinet.net.au Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="===============0134505683==" Return-path: Received: from [140.186.70.92] (port=34314 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OBykn-0002Ab-9i for emacs-orgmode@gnu.org; Tue, 11 May 2010 19:20:46 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1OBykl-0003g6-NK for emacs-orgmode@gnu.org; Tue, 11 May 2010 19:20:45 -0400 Received: from webmail.icp-qv1-irony-out1.iinet.net.au ([203.59.1.146]:27605) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1OBykk-0003fg-Lg for emacs-orgmode@gnu.org; Tue, 11 May 2010 19:20:43 -0400 List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: emacs-orgmode@gnu.org, Dan Davison --===============0134505683== Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset="us-ascii"
I very much like the idea of native inline image display in Org-mode but&nb= sp; 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 ret= urns "No images to display inline".

I've tried different ways of linking that image, different image formats, r= elative 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 <RLAdams@AdamsInfoServ.Com> 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 toggl= e 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 'disp= lay 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 RLAdams@AdamsInfoServ.com
>
> 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.
> Emacs-orgmode@gnu.org
> http://lists.gn= u.org/mailman/listinfo/emacs-orgmode

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

= --===============0134505683== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Emacs-orgmode mailing list Please use `Reply All' to send replies to the list. Emacs-orgmode@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode --===============0134505683==--