emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: John Kitchin <jkitchin@andrew.cmu.edu>
To: Rasmus <rasmus@gmx.us>
Cc: emacs-orgmode@gnu.org
Subject: Re: proposed modification of org-display-inline-images
Date: Mon, 25 Jul 2016 08:18:30 -0400	[thread overview]
Message-ID: <m237mx7vxl.fsf@Johns-MacBook-Air.local> (raw)
In-Reply-To: <87eg6ihvh1.fsf@gmx.us>


Rasmus writes:

> Hi,
>
> Thanks for the proposal.
>
> John Kitchin <jkitchin@andrew.cmu.edu> 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

  reply	other threads:[~2016-07-25 12:18 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-07-24 16:40 proposed modification of org-display-inline-images John Kitchin
2016-07-25 10:18 ` Rasmus
2016-07-25 12:18   ` John Kitchin [this message]
2016-07-25 20:20     ` Fabrice Popineau

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.orgmode.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=m237mx7vxl.fsf@Johns-MacBook-Air.local \
    --to=jkitchin@andrew.cmu.edu \
    --cc=emacs-orgmode@gnu.org \
    --cc=rasmus@gmx.us \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).