On 11/08/2013 11:39 PM, Hans Hagen wrote:
On 11/8/2013 7:11 PM, Pablo Rodriguez wrote:
Dear Hans,
I have presentations that include buffers typeset with \typesetbuffer.
One of the presentation includes 33 buffers, which are small ConTeXt samples.
Any time I change anything on the presentation (not on the buffers themselves), every buffer is typeset again. And the compilation time is longer than probably desired.
My first suggestion would be to skip compiling buffers again, if the following three requirements are met:
1. Buffer content (.tmp file, I guess) is identical (checked with a hash) with the previous one from last compilation.
no temp file is used but a although a hash is possible it also means a lot of extra housekeeping due to the fact that buffers are reused (in which case no run happens)
Compiling the presentation I‘m talking about for the first time on my laptop takes about 210 seconds. Every subsequent compilation takes about 70 seconds. I know my laptop is old and slow. But if I make a copy of the presentation source and remove the \typesetbuffer commands, first compilation takes about 22 seconds and subsequent compilations take about 7 seconds. I have no idea on how ConTeXt works internally, but what I’m trying to say is that if \typesetbuffer has been already compiled, compiling again is no gain.
3. Buffer content was correctly compiled in previous compilation.
define correctly
I meant completely compiled: PDF has been generated.
My second suggestion may be a bit complex to implement, but I think it would be useful. Wouldn’t it be possible that the fonts are only embedded one in the presentation?
how often does it happen ... if we're talking about one page files processing should normally fast e.g.
\setupbodyfont[pagella] \starttext \input tufte \stoptext
takes .3 seconds on my laptop.
normally fonts are embedded efficiently (subsets) and shared
Sorry, there was a typo in my message: “that fonts are only embedded once in the presentation”. My second suggestion isn’t about compilation time, but about duplicated fonts. I tried to provide a sample, but I don’t know why it doesn’t work: \starttext These are bufers: \dorecurse{10}{\startbuffer[text:\recurselevel]\setuppapersize[A7]\starttext\input tufte\stoptext\stopbuffer\typesetbuffer[text:\recurselevel][frame=on]} \stoptext Of course, fonts are embedded fine in documents, but \typesetbuffer is a special case. Having the fonts embedded only once in the final document would be better. Many thanks for your help, Pablo -- http://www.ousia.tk