From mboxrd@z Thu Jan 1 00:00:00 1970 From: John Kitchin Subject: Re: proposed modification of org-display-inline-images Date: Mon, 25 Jul 2016 08:18:30 -0400 Message-ID: References: <87eg6ihvh1.fsf@gmx.us> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:53055) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bReqG-00019C-Fp for emacs-orgmode@gnu.org; Mon, 25 Jul 2016 08:18:44 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bReq8-0000cG-1R for emacs-orgmode@gnu.org; Mon, 25 Jul 2016 08:18:39 -0400 Received: from mail-qk0-x22c.google.com ([2607:f8b0:400d:c09::22c]:35914) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bReq7-0000cC-SE for emacs-orgmode@gnu.org; Mon, 25 Jul 2016 08:18:31 -0400 Received: by mail-qk0-x22c.google.com with SMTP id x1so156370306qkb.3 for ; Mon, 25 Jul 2016 05:18:31 -0700 (PDT) In-reply-to: <87eg6ihvh1.fsf@gmx.us> List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: "Emacs-orgmode" To: Rasmus Cc: emacs-orgmode@gnu.org Rasmus writes: > Hi, > > Thanks for the proposal. > > John Kitchin writes: > >> I would like to propose a change to org-display-inline-images so it can >> rescale images even if imagemagick is not built in to emacs. There is >> currently no way to rescale images when they are displayed in that case >> AFAICS. This is particularly a problem on Windows, as we have never >> found a binary linked to imagemagick for that platform. > > This sounds like an Emacs problem. There was some talk about the > rescaling issue here: > > http://thread.gmane.org/gmane.emacs.devel/174318/ > > And maybe here: > > http://thread.gmane.org/gmane.emacs.devel/200568/focus=203024 It is related to those two issues, especially on Windows. AFAICS, there is still no resolution on those. But it is also an issue in org-mode, because we create overlay images to display them inline. > >> I propose we define a new customizable variable called something like >> org-inline-image-resize-function, and a function that takes a filename >> and the resize options, and returns a path to a resized function (in the >> temporary directory). The variable isn't technically necessary, but if >> someone wanted to use an alternative function, it would enable it. >> >> This function would use the "convert" program from imagemagick to do the >> resizing. This program can be installed independently on all the >> platforms I think. > > Why limit this to Org? A solution should be implemented in image.el. It doesn't need to be limited to org. image.el seems solely focused on compiled in image libraries. There isn't anything in there that uses an external executable that I can see. I am not opposed to fixing this in emacs, but I need a solution sooner than that is likely to happen. I will have 45 students in August with Windows laptops using org-mode in Emacs in a class ;) > >> Since this is just for display in org, I suggest that we use a syntax like: >> >> #+attr_org: :resize resize-options >> [[./file.png]] >> >> the resize-options could be anything here: >> http://www.imagemagick.org/script/command-line-processing.php#geometry >> >> It would enable things like: >> >> reduce size by 50% >> #+attr_org: :resize 50% >> >> set width to 300, preserving aspect ratio >> #+attr_org: :resize 300 >> >> set height to 200, and preserve aspect ratio >> #+attr_org: :resize x200 >> >> set size to 200x300 and change aspect ratio >> #+attr_org: :resize 200x300! >> >> Any thoughts on this proposal? > > This is misusing attr_org, isn’t it? Don’t particularly care for this > "API"... All is IMO, of course. We already misuse this api with inline scaling and :width, but the current implmentation is tricky and uses a regexp to find the first line containing #+attr_... :width ... and uses it. So you have to make sure the one that scales the inline image comes first, and the number has to be in pixels I think. e.g. on emacs with imagemagick, this will get resized into a 2 pixel wide image that is nearly invisible. #+attr_latex: :width 2in [[./file.png]] While this will get rescaled to a width of 200. #+attr_html: :width 200 #+attr_latex: :width 2in [[./file.png]] The order matters. I don't mind the attr_org syntax, as it affects something like a real-time export of org for my eyes. I am open to something else too though, e.g. attr_display? Preferrably something that would show up in the plist of the paragraph containing the caption and attributes. Thoughts? > > Rasmus -- Professor John Kitchin Doherty Hall A207F Department of Chemical Engineering Carnegie Mellon University Pittsburgh, PA 15213 412-268-7803 @johnkitchin http://kitchingroup.cheme.cmu.edu