Re: [O] make new links show as figures?

2013-10-31 Thread Alan Schmitt
r...@rickster.com writes:

 On 2013-10-26 08:10, John Kitchin wrote:
 Other than having to repeat yourself, wouldn't the
 [[custom:file.ext][file:file.png]] syntax allow for most/all of the
 use cases mentioned?
 
 rick
 
 Yes, I think [[custom:file.ext][file:file.png]] would cover all
 those cases.

 So it turns out that this is a REALLY simple patch (two characters):

 --- a/lisp/org.el
 +++ b/lisp/org.el
 @@ -18853,7 +18853,7 @@ BEG and END default to the buffer boundaries.
 (widen)
 (setq beg (or beg (point-min)) end (or end (point-max)))
 (goto-char beg)
 -   (let ((re (concat \\[\\[\\(\\(file:\\)\\|\\([./~]\\)\\)\\([^]\n]+?
 +   (let ((re (concat 
 \\[.*\\[\\(\\(file:\\)\\|\\([./~]\\)\\)\\([^]\n]+?
 (substring (org-image-file-name-regexp) 0 -2)
 \\)\\] (if include-linked  \\])))
 (case-fold-search t)

 This seems to work in all cases I can think of (see test file below).
 Let me know if this works for you and i will apply to master when i
 get home and have git push access.

I tried it on some files with images as links, and it works
great. Thanks a lot!

Alan



Re: [O] make new links show as figures?

2013-10-31 Thread Rick Frankel

On 2013-10-31 06:04, Alan Schmitt wrote:

r...@rickster.com writes:

So it turns out that this is a REALLY simple patch (two characters):

+++ b/lisp/org.el
@@ -18853,7 +18853,7 @@ BEG and END default to the buffer boundaries.
(widen)
(setq beg (or beg (point-min)) end (or end (point-max)))
(goto-char beg)
-   (let ((re (concat 
\\[\\[\\(\\(file:\\)\\|\\([./~]\\)\\)\\([^]\n]+?

+   (let ((re (concat
\\[.*\\[\\(\\(file:\\)\\|\\([./~]\\)\\)\\([^]\n]+?
(substring (org-image-file-name-regexp) 0 -2)
\\)\\] (if include-linked  \\])))
(case-fold-search t)

This seems to work in all cases I can think of (see test file below).
Let me know if this works for you and i will apply to master when i
get home and have git push access.

I tried it on some files with images as links, and it works
great. Thanks a lot!


So, I've done some testing of the export functions (html and latex
only) and found the following behaviors with this patch:

- HTML
- image in description only displayed if the protocol (file:) is
included.
- LaTeX
- same, required file: protocol in description
- additionally, pdflatex \includgraphics barfs on any path w/ a
=./= path prefix -- this is true for the current implmenation as
well.

Changing the regexp for in-buffer image expansion to mimic the export
behavior is difficult at best. I think the inconsistency is
acceptable, and I will documentment the behavior in the
`org-display-inline-images' docstring.

The latex breakage on paths beginning with =./= should perhaps be
addressed in the latex exporter, but this is orthogonal to the
current issue.

If there is no objection, I will push a fix tonight or tomorrow.

rick




Re: [O] make new links show as figures?

2013-10-31 Thread Cook, Malcolm

  So it turns out that this is a REALLY simple patch (two characters):
 
  +++ b/lisp/org.el
  @@ -18853,7 +18853,7 @@ BEG and END default to the buffer boundaries.
  (widen)
  (setq beg (or beg (point-min)) end (or end (point-max)))
  (goto-char beg)
  -   (let ((re (concat
  \\[\\[\\(\\(file:\\)\\|\\([./~]\\)\\)\\([^]\n]+?
  +   (let ((re (concat
  \\[.*\\[\\(\\(file:\\)\\|\\([./~]\\)\\)\\([^]\n]+?
  (substring (org-image-file-name-regexp) 0 -2)
  \\)\\] (if include-linked  \\])))
  (case-fold-search t)
 
  This seems to work in all cases I can think of (see test file below).
  Let me know if this works for you and i will apply to master when i
  get home and have git push access.
 
  I tried it on some files with images as links, and it works
  great. Thanks a lot!
[Cook, Malcolm] 

Hi - I'm trying to follow this thread but having a challenge.  Can you please 
summarize/repeat the original intended effect of this change  

~Malcolm


 
 So, I've done some testing of the export functions (html and latex
 only) and found the following behaviors with this patch:
 
 - HTML
 - image in description only displayed if the protocol (file:) is
 included.
 - LaTeX
 - same, required file: protocol in description
 - additionally, pdflatex \includgraphics barfs on any path w/ a
 =./= path prefix -- this is true for the current implmenation as
 well.
 
 Changing the regexp for in-buffer image expansion to mimic the export
 behavior is difficult at best. I think the inconsistency is
 acceptable, and I will documentment the behavior in the
 `org-display-inline-images' docstring.
 
 The latex breakage on paths beginning with =./= should perhaps be
 addressed in the latex exporter, but this is orthogonal to the
 current issue.
 
 If there is no objection, I will push a fix tonight or tomorrow.
 
 rick
 



Re: [O] make new links show as figures?

2013-10-31 Thread Rick Frankel

On 2013-10-31 12:20, Cook, Malcolm wrote:


 So it turns out that this is a REALLY simple patch (two characters):

 +++ b/lisp/org.el
 @@ -18853,7 +18853,7 @@ BEG and END default to the buffer 
boundaries.

 (widen)
 (setq beg (or beg (point-min)) end (or end (point-max)))
 (goto-char beg)
 -   (let ((re (concat
 \\[\\[\\(\\(file:\\)\\|\\([./~]\\)\\)\\([^]\n]+?
 +   (let ((re (concat
 \\[.*\\[\\(\\(file:\\)\\|\\([./~]\\)\\)\\([^]\n]+?
 (substring (org-image-file-name-regexp) 0 -2)
 \\)\\] (if include-linked  \\])))
 (case-fold-search t)

 This seems to work in all cases I can think of (see test file 
below).

 Let me know if this works for you and i will apply to master when i
 get home and have git push access.

 I tried it on some files with images as links, and it works
 great. Thanks a lot!
[Cook, Malcolm]

Hi - I'm trying to follow this thread but having a challenge.  Can you
please summarize/repeat the original intended effect of this
change


To make images in link descriptions (e.g, [[file.dot][file.png]]
displayed inline rather than showing the text (file.png)




So, I've done some testing of the export functions (html and latex
only) and found the following behaviors with this patch:

- HTML
- image in description only displayed if the protocol (file:) is
included.
- LaTeX
- same, required file: protocol in description
- additionally, pdflatex \includgraphics barfs on any path w/ a
=./= path prefix -- this is true for the current implmenation as
well.

Changing the regexp for in-buffer image expansion to mimic the export
behavior is difficult at best. I think the inconsistency is
acceptable, and I will documentment the behavior in the
`org-display-inline-images' docstring.

The latex breakage on paths beginning with =./= should perhaps be
addressed in the latex exporter, but this is orthogonal to the
current issue.

If there is no objection, I will push a fix tonight or tomorrow.

rick





Re: [O] make new links show as figures?

2013-10-31 Thread Alan Schmitt
r...@rickster.com writes:

 So, I've done some testing of the export functions (html and latex
 only) and found the following behaviors with this patch:

 - HTML
 - image in description only displayed if the protocol (file:) is
 included.
 - LaTeX
 - same, required file: protocol in description
 - additionally, pdflatex \includgraphics barfs on any path w/ a
 =./= path prefix -- this is true for the current implmenation as
 well.

 Changing the regexp for in-buffer image expansion to mimic the export
 behavior is difficult at best. I think the inconsistency is
 acceptable, and I will documentment the behavior in the
 `org-display-inline-images' docstring.

Consistency would be nice, but then we might start asking for more, such
as following attr_html attributes (width, for instance). It's very
useful like this, to check before exporting that the link to the
expected image is indeed correct.

Thanks,

Alan



Re: [O] make new links show as figures?

2013-10-30 Thread Rick Frankel

On 2013-10-26 08:10, John Kitchin wrote:

Other than having to repeat yourself, wouldn't the
[[custom:file.ext][file:file.png]] syntax allow for most/all of the
use cases mentioned?

rick

Yes, I think [[custom:file.ext][file:file.png]] would cover all
those cases.


So it turns out that this is a REALLY simple patch (two characters):

--- a/lisp/org.el
+++ b/lisp/org.el
@@ -18853,7 +18853,7 @@ BEG and END default to the buffer boundaries.
(widen)
(setq beg (or beg (point-min)) end (or end (point-max)))
(goto-char beg)
-   (let ((re (concat \\[\\[\\(\\(file:\\)\\|\\([./~]\\)\\)\\([^]\n]+?
+   (let ((re (concat 
\\[.*\\[\\(\\(file:\\)\\|\\([./~]\\)\\)\\([^]\n]+?

(substring (org-image-file-name-regexp) 0 -2)
\\)\\] (if include-linked  \\])))
(case-fold-search t)

This seems to work in all cases I can think of (see test file below).
Let me know if this works for you and i will apply to master when i
get home and have git push access.

rick
- 8 
* Setup (babel me)
#+BEGIN_SRC dot :file image1.png
digraph { one }
#+END_SRC

#+BEGIN_SRC sh
echo digraph { one }  image1.dot
#+END_SRC

#+RESULTS:
[[file:image1.png]]

#+BEGIN_SRC dot :file image2.png
digraph { two }
#+END_SRC

#+RESULTS:
[[file:image2.png]]
* Tests
** file link
- with  path (=./=)
[[file:./image1.png]]
- without path
[[file:image1.png]]
** no uri link
- with path ( =./=)
[[./image1.png]]
- without path (this does not expand as an image)
[[image1.png]]
** with description
Note: this does not expand as an image unless
`org-display-inline-images' is called with =include-linked=  true.
[[file:./image1.png][an image]]
** image in description
[[./image1.dot][./image1.png]]
** in both
This will always display the image in the description regardless of
the value of the =include-linked= argument to
`org-display-inline-images' (but open the image in the link).

[[./image1.png][./image2.png]]





Re: [O] make new links show as figures?

2013-10-26 Thread John Kitchin
I realize that. I offered this approach as an alternative, as I
 believe I can add the functionality to expand inline images in the
 description portion, but i don't see a way to make the link portion
 accept aliases for the file: protocol without major changes to link
 handling.  Even then, it seems a bit like a hack.

  [many use cases omitted]


  Those are what I was thinking about for using other links as images.


 Other than having to repeat yourself, wouldn't the
 [[custom:file.ext][file:file.**png]] syntax allow for most/all of the
 use cases mentioned?

 rick


Yes, I think [[custom:file.ext][file:file.png]] would cover all those cases.


Re: [O] make new links show as figures?

2013-10-25 Thread Rick Frankel

On 2013-10-24 17:48, John Kitchin wrote:

I don't think making chemdraw a babel language is the answer here. The
way I know chemdraw is as a standalone binary executable that is all
gui. there is no scripting. maybe you could build an xml file by hand,
but i would never dream of that! maybe I am missing how you would use
it.


Sorry, not familiar w/ chemdraw and you had originally mentioned that
you wanted clicking the link to open it in emacs.


[[chemdraw:file.cdxml][file:file.png]]

Is pretty close to what I had in mind. I would define the link click
function to just strip off the png, and open the file.cdxml for
example, then you do not need both of those pieces. I suppose this
means you would have had to export the file as a new png after editing
it to make a change though.


I realize that. I offered this approach as an alternative, as I
believe I can add the functionality to expand inline images in the
description portion, but i don't see a way to make the link portion
accept aliases for the file: protocol without major changes to link
handling.  Even then, it seems a bit like a hack.


[many use cases omitted]



Those are what I was thinking about for using other links as images.


Other than having to repeat yourself, wouldn't the
[[custom:file.ext][file:file.png]] syntax allow for most/all of the
use cases mentioned?

rick



Re: [O] make new links show as figures?

2013-10-24 Thread Alan Schmitt
Hi Rick and John,

r...@rickster.com writes:

 On 2013-10-22 21:53, John Kitchin wrote:
 Is it possible to define new links that would be rendered as inline 
 images?
 
 I am imagining something like
 
 chemdraw:benzene.png
 
 which would show the benzene.png file inline, but when I click on it
 would open a chemdraw file for editing.

 unfortunately, it seems that `org-display-inline-images' has a
 hardcoded regex which searches only for =file:= links.

 Wouldn't a better way be to define =chemdraw= as a babel language?

 ob-plantuml, ob-dot and ob-mscgen are all examples of babel languages
 which generate images.

This may be related to a question I had a couple weeks ago (see
http://article.gmane.org/gmane.emacs.orgmode/77567). The current logic
seems to be to display inline images when the link points to an image,
it would be great to extend it when the description, or part of the
link, points to an image.

Alan



Re: [O] make new links show as figures?

2013-10-24 Thread Carsten Dominik

On 24.10.2013, at 09:28, Alan Schmitt alan.schm...@polytechnique.org wrote:

 Hi Rick and John,
 
 r...@rickster.com writes:
 
 On 2013-10-22 21:53, John Kitchin wrote:
 Is it possible to define new links that would be rendered as inline 
 images?
 
 I am imagining something like
 
 chemdraw:benzene.png
 
 which would show the benzene.png file inline, but when I click on it
 would open a chemdraw file for editing.
 
 unfortunately, it seems that `org-display-inline-images' has a
 hardcoded regex which searches only for =file:= links.
 
 Wouldn't a better way be to define =chemdraw= as a babel language?
 
 ob-plantuml, ob-dot and ob-mscgen are all examples of babel languages
 which generate images.
 
 This may be related to a question I had a couple weeks ago (see
 http://article.gmane.org/gmane.emacs.orgmode/77567). The current logic
 seems to be to display inline images when the link points to an image,
 it would be great to extend it when the description, or part of the
 link, points to an image.

Indeed, currently this is not possible.  I would be interested to get a patch 
to this effect.

- Carsten

 
 Alan
 




Re: [O] make new links show as figures?

2013-10-24 Thread Rick Frankel

On 2013-10-24 06:08, Carsten Dominik wrote:
On 24.10.2013, at 09:28, Alan Schmitt alan.schm...@polytechnique.org 
wrote:


Hi Rick and John,

r...@rickster.com writes:

On 2013-10-22 21:53, John Kitchin wrote:
Is it possible to define new links that would be rendered as inline
images?

I am imagining something like

chemdraw:benzene.png

which would show the benzene.png file inline, but when I click on it
would open a chemdraw file for editing.

unfortunately, it seems that `org-display-inline-images' has a
hardcoded regex which searches only for =file:= links.

This may be related to a question I had a couple weeks ago (see
http://article.gmane.org/gmane.emacs.orgmode/77567). The current logic
seems to be to display inline images when the link points to an image,
it would be great to extend it when the description, or part of the
link, points to an image.

Indeed, currently this is not possible.  I would be interested to get
a patch to this effect.


Carsten-

In terms of inlining images in the description portion per the linked
posting, do you think that it should depended on the value if the
=include-linked= argument? (IMHO no, since the default usage of
`org-display-inline-images' doesn't set this argument). I would be
glad to take a stab at this enhancement.

John-
In reviewing `org-display-inline-images', and the handling of org
links in general, i see no safe (and not overly complex) way of making
added link types expand inline images. In the case mentioned, i still
feel that adding chemdraw as a babel language is the correct approach.
However, if we add the expansion of images in the description, would
that work:

[[chemdraw:file.cdxml][file:file.png]]

rick



Re: [O] make new links show as figures?

2013-10-24 Thread John Kitchin
I don't think making chemdraw a babel language is the answer here. The way
I know chemdraw is as a standalone binary executable that is all gui. there
is no scripting. maybe you could build an xml file by hand, but i would
never dream of that! maybe I am missing how you would use it.

[[chemdraw:file.cdxml][file:file.png]]

Is pretty close to what I had in mind. I would define the link click
function to just strip off the png, and open the file.cdxml for example,
then you do not need both of those pieces. I suppose this means you would
have had to export the file as a new png after editing it to make a change
though.

The real examples I had in mind were some clean way to integrate emacs with
my tablet and drawing pictures that are inline in a buffer. Clicking on the
link would open the image in my tablet drawing program, where I would draw
on it with a pen, and then save the figure. this is not all images though,
just some. Hence the differentiation by a different link. In my course
notes, I often have hand-drawn pictures in them. Right now I go through a
somewhat annoying process of drawing in powerpoint, selecting the drawing
and right clicking to save as an image, which I then put in as a link. I
havent had time to find a much better solution. A link could save me some
of that hassle, except that the link doesn't show in the buffer as an
inline image.

I also wanted a figure link that would export different ways. For example
in html export it would export as html, for latex as eps, and for pdflatex
as pdf, but it would show inline in some supported format. I know I can use
filters to do that on export to replace or remove extensions, but I haven't
had time to write one, and I thought a link would be a nice alternative. We
typically make all three versions (png, eps, pdf) of figures, and put the
png files in org so they show inline, but we often have to switch them out
to one of the other formats at the end for manuscript submission. A link
like figure:filename  that would somehow show inline if a filename.png
existed would solve this problem.

Those are what I was thinking about for using other links as images.

j


John

---
John Kitchin
Associate Professor
Doherty Hall A207F
Department of Chemical Engineering
Carnegie Mellon University
Pittsburgh, PA 15213
412-268-7803
http://kitchingroup.cheme.cmu.edu



On Thu, Oct 24, 2013 at 9:45 AM, Rick Frankel r...@rickster.com wrote:

 On 2013-10-24 06:08, Carsten Dominik wrote:

 On 24.10.2013, at 09:28, Alan Schmitt 
 alan.schmitt@polytechnique.**orgalan.schm...@polytechnique.org
 wrote:

 Hi Rick and John,

 r...@rickster.com writes:

 On 2013-10-22 21:53, John Kitchin wrote:
 Is it possible to define new links that would be rendered as inline
 images?

 I am imagining something like

 chemdraw:benzene.png

 which would show the benzene.png file inline, but when I click on it
 would open a chemdraw file for editing.

 unfortunately, it seems that `org-display-inline-images' has a
 hardcoded regex which searches only for =file:= links.

 This may be related to a question I had a couple weeks ago (see
 http://article.gmane.org/**gmane.emacs.orgmode/77567http://article.gmane.org/gmane.emacs.orgmode/77567).
 The current logic
 seems to be to display inline images when the link points to an image,
 it would be great to extend it when the description, or part of the
 link, points to an image.

 Indeed, currently this is not possible.  I would be interested to get
 a patch to this effect.


 Carsten-

 In terms of inlining images in the description portion per the linked
 posting, do you think that it should depended on the value if the
 =include-linked= argument? (IMHO no, since the default usage of
 `org-display-inline-images' doesn't set this argument). I would be
 glad to take a stab at this enhancement.

 John-
 In reviewing `org-display-inline-images', and the handling of org
 links in general, i see no safe (and not overly complex) way of making
 added link types expand inline images. In the case mentioned, i still
 feel that adding chemdraw as a babel language is the correct approach.
 However, if we add the expansion of images in the description, would
 that work:

 [[chemdraw:file.cdxml][file:**file.png]]

 rick



Re: [O] make new links show as figures?

2013-10-24 Thread Rick Frankel
Carsten-

On 2013-10-24 06:08, Carsten Dominik wrote:
 On 24.10.2013, at 09:28, Alan Schmitt alan.schm...@polytechnique.org wrote:
 This may be related to a question I had a couple weeks ago (see
 http://article.gmane.org/gmane.emacs.orgmode/77567). The current logic
 seems to be to display inline images when the link points to an image,
 it would be great to extend it when the description, or part of the
 link, points to an image.
 Indeed, currently this is not possible.  I would be interested to get
 a patch to this effect.

I agree, expanding images in the link description per the mentioned posting 
makes sense.

Do you think inlining images in the description

In terms of implementation of this, and inlining


Re: [O] make new links show as figures?

2013-10-24 Thread Rick Frankel
Carsten-

On 2013-10-24 06:08, Carsten Dominik wrote:
 On 24.10.2013, at 09:28, Alan Schmitt alan.schm...@polytechnique.org wrote:
 This may be related to a question I had a couple weeks ago (see
 http://article.gmane.org/gmane.emacs.orgmode/77567). The current logic
 seems to be to display inline images when the link points to an image,
 it would be great to extend it when the description, or part of the
 link, points to an image.
 Indeed, currently this is not possible.  I would be interested to get
 a patch to this effect.

I agree, expanding images in the link description per the mentioned posting 
makes sense.

Do you think inlining images in the description

In terms of implementation of this, and inlining


Re: [O] make new links show as figures?

2013-10-23 Thread Rick Frankel

On 2013-10-22 21:53, John Kitchin wrote:
Is it possible to define new links that would be rendered as inline 
images?


I am imagining something like

chemdraw:benzene.png

which would show the benzene.png file inline, but when I click on it
would open a chemdraw file for editing.


unfortunately, it seems that `org-display-inline-images' has a
hardcoded regex which searches only for =file:= links.

Wouldn't a better way be to define =chemdraw= as a babel language?

ob-plantuml, ob-dot and ob-mscgen are all examples of babel languages
which generate images.

rick



[O] make new links show as figures?

2013-10-22 Thread John Kitchin
Is it possible to define new links that would be rendered as inline images?

I am imagining something like

chemdraw:benzene.png

which would show the benzene.png file inline, but when I click on it would
open a chemdraw file for editing.

John

---
John Kitchin
Associate Professor
Doherty Hall A207F
Department of Chemical Engineering
Carnegie Mellon University
Pittsburgh, PA 15213
412-268-7803
http://kitchingroup.cheme.cmu.edu