Re: [O] make new links show as figures?
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?
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?
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?
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?
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?
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?
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?
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?
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?
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?
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?
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?
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?
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?
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?
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