![](https://secure.gravatar.com/avatar/5955e8e90611e77ccbfc7721b6112027.jpg?s=120&d=mm&r=g)
On 07/18/2018 09:08 PM, Wolfgang Schuster wrote:
[...] Afterwards you can use a loop where you add the markpage commands at the begin and end of the range, below is a simple example but it’s easy to write a better loop with Lua.
\setuplayout[page] \setupinteraction[state=start] \setupinteractionscreen[option={portrait, paper}, print=pages] \starttext \getfiguredimensions[i-context.pdf] \dostepwiserecurse{1}{99}{1}{\externalfigure[i-context.pdf][height=\textheight,page=\recurselevel]} \startmarkpages[page] \dostepwiserecurse{100}{300}{1}{\externalfigure[i-context.pdf][height=\textheight,page=\recurselevel]} \stopmarkpages \dostepwiserecurse{301}{\noffigurepages}{1}{\externalfigure[i-context.pdf][height=\textheight,page=\recurselevel]} \stoptext
Wolfgang a different approach would be (code was mainly provided by anoter person): \startluacode function document.splitarray(inputstr, sep) local t={} for str in inputstr:gmatch("([^"..sep.."]+)") do table.insert(t, str) end return t end function document.getpagearray(page_ranges) local page_array={} local ranges = document.splitarray(page_ranges, ",") for _, pp in ipairs(ranges) do if string.find(pp, "-") then aux = document.splitarray(pp, "-") for i=tonumber(aux[1]), tonumber(aux[2]), 1 do table.insert(page_array, i) end else table.insert(page_array, tonumber(pp)) end end return page_array end function document.printmarkedpageranges(tag, page_ranges) page_array = document.getpagearray(page_ranges) context("\\markpage[" .. tag .. "][" .. table.concat(page_array, ", ") .. "]") end \stopluacode \def\getmarkedpageranges#1#2{% \ctxlua{document.printmarkedpageranges("#1","#2")}} \setuplayout[page] \setupinteraction[state=start] \setupinteractionscreen[option={portrait, paper}, print=pages] \getmarkedpageranges{pages}{5, 25-30, 100-200, 235, 298, 304} \starttext \insertpages[i-context.pdf][width=0pt] \stoptext This makes easier to add more complex page intervals (such as the one above). Before adding this to the wiki, my question would be whether it might not be easier to add page ranges to \markpage. I mean, as a standard user I think there is too much code (which may be improved and made part of ConTeXt) for such a simple need. Of course, I may be missing the whole point in this issue. I would really appreciate, if someone could explain me what is wrong in my assumption that \markpages need also page intervals. Many thanks for your help, Pablo -- http://www.ousia.tk