Hans Aberg writes: > >and this is basically it. > > Could you give some hints of why this stuff is needed? It can't be in > order to merely keep the references right, because that could be solved by > avoiding having multiple aux files. well, the number of aux files have nothing to do with solving references or nearly nothing. why do you need to keep track of the stuff i outlined: because the whole purpose of the include idea is to allow the following: to be able to process parts of the document and do get a correct and identical output for that part. e.g. if you format the whole document and print page 55 then the output is not changed if you later on process only the part that contains page 55 and then print page 55. this means that on this page 1) that everything is in the same place 2) the references to things in other places are the same 3) the floats appear identically 4) ... if you don't care about that then you can just use \input and process only those parts you are currently working on (which is what i usually do) and you can devise a simple mechanism that inputs only those files you want. but then on the other hand you can also use the current include since who cases about those extra page breaks in that case? for the final run you can still go \let\include\input and process everything without extra pages. now to achieve 1) you need to store information about the stuff that i described (ie float lists and positions on the pages at the beginning and end) since if you leave out say the first part you have to start the second part not on the top of a page but somewhere on the page (ie where the first part would have ended if typeset) and you need to know the status of your float lists after the end of the first part, since these lists contain the floats which haven't been typeset (from part one) and thus will get typeset while part two is processed (if the full document is typeset) to resolve crossreference you need to know what labels did appear in part one (as they might get referred to in other parts). this is what the aux files contain but it isn't really necessary to use separate files for each include. that is just a technical solution and an easy one. in fact for some prototype kernel (long time ago) i implemented a scheme that always used two aux files: one to read from and one to write to. the advantage was that a) less files and b) much better control in error situations, ie in case your run ended in the middle LaTeX would not use the file that was only partly written but the one that was fully written last time. frank