LATEX-L Archives

Mailing list for the LaTeX3 project


Options: Use Classic View

Use Monospaced Font
Show Text Part by Default
Show All Mail Headers

Topic: [<< First] [< Prev] [Next >] [Last >>]

Print Reply
Lars Hellström <[log in to unmask]>
Sat, 9 Feb 2008 13:25:46 +0100
text/plain (81 lines)
8 feb 2008 kl. 21.58 skrev Frank Mittelbach:
> 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 
    placement could be a bit more liberal so that we got them out of the 

  * 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 

Lars Hellström

PS: I wouldn't mind getting a response to the xparse/xdoc stuff too.