Re: [NTG-context] Pagereferences to more than one page
On Mon, Jan 2, 2012 at 5:30 PM, luigi scarso wrote: > On Mon, Jan 2, 2012 at 5:21 PM, Jan Heinen wrote: > > Though I searched a lot for the question in the bottom, > > - I could not find a parameter for \at which solves my problem > > - I could not find any other command which helps me > > > > Is this a limitation of ConText? I can't imagin that I am the only one > and > > first who wants to reference to more than one page. > I'm working on this > but the idea of reference is that there is exactly one label for an > object (which can be the same) > so that \pagereference[red]foo > \pagereference[red]boo > is wrong because the label red has more than one reference, while > \pagereference[red:1]foo > \pagereference[red:2]foo > is ok (as hans said). > Using this idea, and the two pass way, we can wrap \pagereference and \at with \PageReference and \At, wheret \PageReference[red] really means \pagereference[red:1], \pagereference[red:2] and so on, while \At{page:}[red] put \at{page:}[red:],\at{}[red:2] and so on. After the end of the first pass we store the multiple references into multiref.tuc, and we read this file at the beginning of every other pass; its data is used by \At to put the correct reference. This is not a good solution, because multiref.tuc must be keep in synch with the tuc file of the source, so context ---purgeall must be call to clean up temporary data and restart. The ideal solution store these data into the tuc file --- context has core-two.lua and core-two.mkiv for this, if I've time I will fix. % \startluacode document.jan = document.jan or {} document.jan.multiple_references = document.jan.multiple_references or {} document.jan.multiple_references_stored = document.jan.multiple_references_stored or {} \stopluacode \def\WriteToList{% \startluacode local f=io.open('multiref.tuc','r') if f==nil then f=io.open('multiref.tuc','w') f:write("local multiple_references= multiple_references or {}\n") f:write("multiple_references={\n") for k,v in pairs(document.jan.multiple_references) do f:write(string.format("['\%s']=\%s,\n",k,v)) end f:write("}\n") f:write("return multiple_references\n") end \stopluacode } \appendtoks\WriteToList\to\everystoptext \def\ReadList{% \startluacode local f=io.open('multiref.tuc','r') if f~=nil then f:close() document.jan.multiple_references_stored=dofile('multiref.tuc') end \stopluacode } \appendtoks\ReadList\to\everystarttext %% wrap \pagereference \def\PageReference[#1]{% \startluacode if document.jan.multiple_references['#1'] == nil then document.jan.multiple_references['#1'] = 1 else document.jan.multiple_references['#1'] = document.jan.multiple_references['#1'] +1 end context('\\pagereference[#1:\%d]',document.jan.multiple_references['#1']) \stopluacode% } %% wrap \at \def\At#1[#2]{% \startluacode print('> ',document.jan.multiple_references['#2']) if document.jan.multiple_references_stored['#2'] == nil then context('\\at{#1}[#2]') else for j=1,document.jan.multiple_references_stored['#2'] do local ref=string.format('#2:\%d',j) local comma = ',' if j==1 and document.jan.multiple_references_stored['#2']==1 then context('\\at{#1}[\%s]',ref) end if j==1 and document.jan.multiple_references_stored['#2']~=1 then context('\\at{#1}[\%s],',ref) elseif 11 then context('\\at{}[\%s]',ref) end end end \stopluacode } \starttext You can find red vehicles on \At{page:}[red] You can find yellow vehicles on \At{page:}[yellow] Here I want to see: "You can find red vehicles on page 2,4" (only page 2 is wrong) \page \PageReference[red]Here is a red car. \page \PageReference[green]Here is a green car. \page \PageReference[red]Here is a red bus. \page \PageReference[green]Here is a green car. \page \PageReference[yellow]Here is a yellow car. \page \stoptext -- luigi ___ If your question is of interest to others as well, please add an entry to the Wiki! maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://tex.aanhet.net archive : http://foundry.supelec.fr/projects/contextrev/ wiki : http://contextgarden.net ___
Re: [NTG-context] Pagereferences to more than one page
On Mon, Jan 2, 2012 at 5:21 PM, Jan Heinen wrote: > Though I searched a lot for the question in the bottom, > - I could not find a parameter for \at which solves my problem > - I could not find any other command which helps me > > Is this a limitation of ConText? I can't imagin that I am the only one and > first who wants to reference to more than one page. I'm working on this but the idea of reference is that there is exactly one label for an object (which can be the same) so that \pagereference[red]foo \pagereference[red]boo is wrong because the label red has more than one reference, while \pagereference[red:1]foo \pagereference[red:2]foo is ok (as hans said). What you need is a register --- they are used in to build the Index : see http://wiki.contextgarden.net/Registers -- luigi ___ If your question is of interest to others as well, please add an entry to the Wiki! maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://tex.aanhet.net archive : http://foundry.supelec.fr/projects/contextrev/ wiki : http://contextgarden.net ___
Re: [NTG-context] Pagereferences to more than one page
On 2-1-2012 17:21, Jan Heinen wrote: Though I searched a lot for the question in the bottom, - I could not find a parameter for \at which solves my problem - I could not find any other command which helps me Is this a limitation of ConText? I can't imagin that I am the only one and first who wants to reference to more than one page. Regards, Jannis = Copy I want to reference to more than one page. In the exampe above only page 2 is referenced - how to get 2,4 ? \starttext You can find red vehicles on \at{page:}[red] Here I want to see: "You can find red vehicles on page 2,4" (only page 2 is wrong) \page \pagereference[red]Here is a red car. \page \pagereference[green]Here is a green car. \page \pagereference[red]Here is a red bus. \page \pagereference[green]Here is a green car. \page that won't work as references need to be unique [green-1] [green-2] etc - Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | voip: 087 875 68 74 | www.pragma-ade.com | www.pragma-pod.nl - ___ If your question is of interest to others as well, please add an entry to the Wiki! maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://tex.aanhet.net archive : http://foundry.supelec.fr/projects/contextrev/ wiki : http://contextgarden.net ___
Re: [NTG-context] Pagereferences to more than one page
Though I searched a lot for the question in the bottom, - I could not find a parameter for \at which solves my problem - I could not find any other command which helps me Is this a limitation of ConText? I can't imagin that I am the only one and first who wants to reference to more than one page. Regards, Jannis = Copy I want to reference to more than one page. In the exampe above only page 2 is referenced - how to get 2,4 ? \starttext You can find red vehicles on \at{page:}[red] Here I want to see: "You can find red vehicles on page 2,4" (only page 2 is wrong) \page \pagereference[red]Here is a red car. \page \pagereference[green]Here is a green car. \page \pagereference[red]Here is a red bus. \page \pagereference[green]Here is a green car. \page \stoptext ___ If your question is of interest to others as well, please add an entry to the Wiki! maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://tex.aanhet.net archive : http://foundry.supelec.fr/projects/contextrev/ wiki : http://contextgarden.net ___
[NTG-context] Pagereferences to more than one page
Happy New Year! I want to reference to more than one page. In the exampe above only page 2 is referenced - how to get 2,4 ? \starttext You can find red vehicles on \at{page:}[red] Here I want to see: "You can find red vehicles on page 2,4" (only page 2 is wrong) \page \pagereference[red]Here is a red car. \page \pagereference[green]Here is a green car. \page \pagereference[red]Here is a red bus. \page \pagereference[green]Here is a green car. \page \stoptext Regards Jannis ___ If your question is of interest to others as well, please add an entry to the Wiki! maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://tex.aanhet.net archive : http://foundry.supelec.fr/projects/contextrev/ wiki : http://contextgarden.net ___