8 feb 2008 kl. 21.58 skrev Frank Mittelbach: [snip] > in current LaTeX the algorithms are simple enough to prevent this from > happening as something like \thispagestyle{foo} will not change the > textual > page content. The only way to get this behavior right now is by using > roman > numerals as page number and do reference to pages inside the text. if > you > carefully construct such a document you can get this behavior because > the > length of the number sequence in roman numerals is not steadily > increasing. but this is so rare and difficult to do that nearly nobody > ever > saw that in real life. with more complicated placement algorithms for > floats > and vertical column sizes this danger becomes a reality if you allow > to change > the algorithm midway from within the document. > > So I'm still wondering about how to best specify such changes. If only > allowed > from the outside things are easy but if from the inside it is tricky > as you > can't explain to somebody. "well, just place your command between the > words > shown on page 5 to change the look and feel on page 4" Which brings me back to the question about using \marks. If a mark changing the \pagestyle (assuming here metrics stay the same) is given in material ending up on page 5, there is no way that it can affect what happens on page 4, even if it was put on the main vertical list before page 4 was shipped out. So far so good, eh? The other problem is nonmonotonic dependence on page breaks chosen, as illustrated by the roman numeral problem. One way to break an infinite loop of rebreaks would be to impose a monotonicity rule on the settings. Basically there is the main body of text and floating material competeing for area on the page being built, right? An increasing text rule could then mean that settings are not taken into account if they decrease the amount of body text being included, i.e., if we have the following sequence of events: 1. A page break is chosen with default settings. 2. Within this page material is then a change of settings which would increase the part of the page occupied by body text, so the page break is recalculated with the new settings. 3. Within the additional material put on the page, there is another change of settings which would reduce the body text amount on the page. This is however not taken into account, as it would violate monotonicity; the page break is not recalculated. It's possible that decreasing text is more often useful than increasing text. Maybe it should even be decided on a case-by-case basis: if for breaking page N there is an adjustment which increases (decreases) the text part of the page, then further setting changes may not decrease (increase) the text part of the page. What is best to do probably depends on *why* output routine setting changes are made. Does anyone have a list of scenarios that might be discussed? Some I can think of are: * We're entering a new section of the document, so it would be good if float placement could be a bit more liberal so that we got them out of the way. * We're making a special kind of page (e.g. chapter opening) and don't want any floats to go here. * We're entering a section of the document where the basic page layout is different (e.g. includes page headers because we're in the index). At least in the last case, I believe typography dictates that the new headers should not take effect until the body material on the top of the page is from the index. New footers should however take effect, so apparently it is not simply a matter of "all pages fit some \pagestyle". Lars Hellström PS: I wouldn't mind getting a response to the xparse/xdoc stuff too.