NICE! I cannot test it right now, but I'll give it a try soon and see if it can be committed, i.e. if it doesn't break anything. I'm of course assuming you already checked, but if I want to keep my commit privileges I must say I'm checking anyway ;-D. Anyway, it seems fine.
Thank you! ________________ Miguel de Benito. On Fri, Jul 1, 2011 at 11:38, Sam Liddicott <s...@liddicott.com> wrote: > > And I changed my preview command to: > > bash -c ' ps2pdf "$0" "$0.pdf" && evince "$0.pdf" ' > > which happens to also demonstrate a nice bash trick - useful to prevent > injection attacks when using the "system" command - particularly useful from > java... > > You build up the command using parameters $0 $1 etc, and then pass these as > arguments to the system command. Any quotes or spaces in the arguments are > harmless! > > Sam > > > On 01/07/11 10:20, Sam Liddicott wrote: > >> Attached is a patch that provides hyperlink support when the file is >> exported to ps and then converted to pdf using ps2pdf. >> >> No external style sheets are needed. >> >> After patching and re-building you WILL need to: >> >> texmacs --delete-style-cache >> >> once, or within texmacs click on "tools, updates, styles" >> >> The only problem I am aware of is that the link generally moves to the top >> of the target page (or bottom, if it is the last page) instead of the >> correct part of the target page. >> >> labels have a new internal definition and are implemented as a locus >> containing a link of type "anchor" in which the id is written as a named >> destination in postscript. >> (In fact the ID is always written as a named destination even for >> non-anchor links, which probably doesn't matter). >> >> The body of the locus is the original label definition so it should all >> work fine I hope. >> >> (Let me know if labels behave badly). >> >> best regards >> >> Anyone want to review this, or commit this to the main project? >> >> Sam >> >> >> On 30/06/11 20:55, Sam Liddicott wrote: >> >>> >>> >>> I think I'm abusing locus a little too much and it's not robust. >>> >>> I think I need to change the definition of reference: >>> >>> env ("reference")= tree (MACRO, "Id", >>> tree (LOCUS, copy (ref_id), ln3, reftxt)); >>> >>> and replace reftxt with something like >>> tree(DECORATE_LINK, tree(ARG, "Id"), refrext); >>> >>> And DECORATE_LINK will work something like datoms but emit the right >>> postscript. >>> >>> This can be a general way for annotating a box with hidden postscript. >>> >>> Sam >>> >>> On 30/06/11 17:57, Sam Liddicott wrote: >>> >>>> >>>> >>>> I've decided to extend the built-in label macro to also contain a >>>> special locus that will generate the pdfmark for a named destination >>>> (anchor >>>> to html people). >>>> >>>> I've already got my hackery in place for locus, so spotting a new kind >>>> should be easy enough. >>>> >>>> I hope to post the full patch sometime tomorrow. >>>> >>>> (Sadly it only works for postscript -> pdf and not new pdf rendering). >>>> >>>> Sam >>>> >>>> On 30/06/11 12:21, Sam Liddicott wrote: >>>> >>>>> >>>>> >>>>> On 29/06/11 19:54, marc lalaude-labayle wrote: >>>>> >>>>>> I follow your posts about this feature and really hopes you'll achieve >>>>>> to add this one to texmacs. >>>>>> >>>>> >>>>> I've done it. >>>>> It's hell. >>>>> >>>>> B the time a <reference> is rendered it's a locus and knowledge that it >>>>> was a reference has gone, and the actual reference value is hard 9for me) >>>>> to >>>>> get hold of. >>>>> However I've got the locus rendering to emit the required pdfmark, and >>>>> that's hacky but works. >>>>> Joris may have something to say. >>>>> I would rather have done this as a <specific printer> macro but I have >>>>> no knowledge of the bounding rect which is needed. >>>>> >>>>> However, a <label> is not actually rendered so there is nowhere for me >>>>> to overload to add the pdfmark to the postscript. >>>>> >>>>> Based on my hacking of <specific|printer<image|<** >>>>> tuple|<raw-data|magic-macro>..**. I'm emitting the pdfmark stuff for >>>>> the label. >>>>> (It's very slow generating the post-script). >>>>> >>>>> Anyway, it works - although I have to override the label macro to emit >>>>> this. >>>>> >>>>> The downsides are: >>>>> 1. hackyness >>>>> 2. slow - I need to have the label rendered directly or find some >>>>> better means of injecting post-script >>>>> 3. despite me trying to do do the label's properly (in postscript) the >>>>> link-targets just seem to be to "the page" rather that the right part of >>>>> the >>>>> page, so I'll have to see what I did wrong there. >>>>> >>>>> >>>>> >>>>> Sam >>>>> >>>>> >>>>>> Marc >>>>>> >>>>>> 2011/6/29 Sam Liddicott <s...@liddicott.com <mailto:s...@liddicott.com >>>>>> >> >>>>>> >>>>>> >>>>>> Wow, I'm nearly there. >>>>>> >>>>>> Using post_display on locus_box_rep I can blot out a hyperlink! >>>>>> >>>>>> So I'm just adding the anchor and href methods to the renderer >>>>>> class. >>>>>> >>>>>> Sam >>>>>> >>>>>> >>>>>> On 28/06/11 18:15, Sam Liddicott wrote: >>>>>> >>>>>> >>>>>> >>>>>> I'm determined to add PDF hyperlink support to texmacs. >>>>>> >>>>>> This post-script can be inserted wherever a <label> is >>>>>> rendered: >>>>>> >>>>>> [ /Dest (LABEL-ID-HERE) cvn /View [/XYZ null null null] /DEST >>>>>> pdfmark >>>>>> >>>>>> I've found the point at which the label is rendered but >>>>>> because it has no real appearance of it's own I've still got >>>>>> to poke my way through to the printer_rep layer. >>>>>> >>>>>> This post-script can be inserted wherever a reference appears, >>>>>> by which I mean a certain type of LOCUS. >>>>>> >>>>>> [ >>>>>> /Rect [ .. ..... .. ] >>>>>> /Border [16 16 1 [3 10]] >>>>>> /Color [1 0 0] >>>>>> /Dest (LABEL-ID-HERE) cvn >>>>>> /Subtype /Link >>>>>> /ANN pdfmark >>>>>> >>>>>> The rect coordinates are the same as used when rendering the >>>>>> locus with mouse-over so that it shows a green box. >>>>>> >>>>>> I've tested the post-script by hand-editing files and it does >>>>>> work. >>>>>> >>>>>> I'm sure that I get to do this somewhere around the final >>>>>> print statement in concater_rep::typeset_locus file >>>>>> concat_active.cpp but I still can't make the link between that >>>>>> point and the printer_rep renderer, unless concat_active is a >>>>>> subclass which I doubt. >>>>>> >>>>>> So right now I'm trying to track down what locus_box does. I >>>>>> see it in change_boxes.cpp but am no closer to finding the >>>>>> point at which printer_rep's print() is invoked or where the >>>>>> green rect coords are kept, but I hope to find it soon. >>>>>> >>>>>> >>>>>> I'm both cases LABEL-ID-HERE has to have weird symbols in >>>>>> octal with \, and \ ( ) escaped by \ >>>>>> >>>>>> This is taking me HOURS so if anyone who knows the C better >>>>>> than me wants to speak out, please do. >>>>>> >>>>>> Sam >>>>>> >>>>>> ______________________________**_________________ >>>>>> Texmacs-dev mailing list >>>>>> Texmacs-dev@gnu.org <mailto:Texmacs-dev@gnu.org> >>>>>> >>>>>> https://lists.gnu.org/mailman/**listinfo/texmacs-dev<https://lists.gnu.org/mailman/listinfo/texmacs-dev> >>>>>> >>>>>> >>>>>> >>>>>> -- [FSF Associate Member #2325] >>>>>> <http://www.fsf.org/register_**form?referrer=2325<http://www.fsf.org/register_form?referrer=2325> >>>>>> > >>>>>> >>>>>> <http://www.openrightsgroup.**org/ <http://www.openrightsgroup.org/>> >>>>>> >>>>>> >>>>>> ______________________________**_________________ >>>>>> Texmacs-dev mailing list >>>>>> Texmacs-dev@gnu.org <mailto:Texmacs-dev@gnu.org> >>>>>> >>>>>> https://lists.gnu.org/mailman/**listinfo/texmacs-dev<https://lists.gnu.org/mailman/listinfo/texmacs-dev> >>>>>> >>>>>> >>>>>> >>>>>> ______________________________**_________________ >>>>>> Texmacs-dev mailing list >>>>>> Texmacs-dev@gnu.org >>>>>> https://lists.gnu.org/mailman/**listinfo/texmacs-dev<https://lists.gnu.org/mailman/listinfo/texmacs-dev> >>>>>> >>>>> >>>>> >>>>> >>>> >>>> >>> >>> >> >> > > -- > [FSF Associate Member #2325] <http://www.fsf.org/register_** > form?referrer=2325 <http://www.fsf.org/register_form?referrer=2325>> > > <http://www.openrightsgroup.**org/ <http://www.openrightsgroup.org/>> > > ______________________________**_________________ > Texmacs-dev mailing list > Texmacs-dev@gnu.org > https://lists.gnu.org/mailman/**listinfo/texmacs-dev<https://lists.gnu.org/mailman/listinfo/texmacs-dev> >
_______________________________________________ Texmacs-dev mailing list Texmacs-dev@gnu.org https://lists.gnu.org/mailman/listinfo/texmacs-dev