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
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
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
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.