LATEX-L Archives

Mailing list for the LaTeX3 project


Options: Use Classic View

Use Proportional Font
Show Text Part by Default
Condense Mail Headers

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

Print Reply
Sender: Mailing list for the LaTeX3 project <[log in to unmask]>
Date: Fri, 8 Feb 2008 21:58:10 +0100
Reply-To: Mailing list for the LaTeX3 project <[log in to unmask]>
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
In-Reply-To: <[log in to unmask]>
Content-Type: text/plain; charset=us-ascii
From: Frank Mittelbach <[log in to unmask]>
Parts/Attachments: text/plain (59 lines)
Hi Paul,

 > Ha! I do this in newlfm.  What I do is specify page dimensions in a
 > register.  During shipout, after shipping out the old page, I bring the new
 > dimensions in and substitute for the old. 

so far so good. clearly one has to store changes somewhere and then use them
in the OR to change things for the next page. But I fear that your code
exhibits precisely the problems that I was talking about. You see, for the
application you mention (e.g., changing the first page on a letter or article)
that will work out fine, but the problems come when you are in the middle of
the document and you have many waiting floats to take up space.

so how do you specify the values for your registers inside the document?

assuming you have some command do do this, this command will be seen by LaTeX
somewhere in the document and at this point your registers for the "next" page
will change. but effectively the text surrounding this command may be typeset
on a later page (potentially more than one page ahead). so in the end you will
have the effect that some code that you placed on page 5 (in the final
document) changes the page setting on page 3 or 4.

if everything is tied to explicit page breaks then things are not too bad but
if not then you are in trouble especially if you page make up is a little more
complicated than just cutting columns, ie if it involves floats, and possibly
changes to the vertical dimensions of the columns.

just thing about a command that allows me to specify how floats can be layed
out on a particular page (like on this page i don't want to have bottom floats
or on this page I don't want any floats, to use some simple ones. so if such a
command is placed directly into the input stream a user would expect to see it
acting on the page where the surrounding text finally falls. and there is the
catch: you can even envision kind of "impossible documents" ie those the never
finish compiling: one iteration you get this command on page 4 say but you
already use a float on that page when you encounter it. so you iterate and on
the next run you use this specific layout with no floats on page 4 but doing
so you put more (or less depending on the style) text onto this page therefore
you command moves to another page. which is then wrong, so you iterate and by
doing so you move the command again to ...

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"