LATEX-L Archives

Mailing list for the LaTeX3 project


Options: Use Forum View

Use Monospaced Font
Show Text Part by Default
Condense Mail Headers

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

Print Reply
Mailing list for the LaTeX3 project <[log in to unmask]>
Fri, 7 Dec 2007 01:46:17 +0100
Mailing list for the LaTeX3 project <[log in to unmask]>
text/plain; charset=us-ascii
Stephan Hennig <[log in to unmask]>
text/plain (87 lines)
Frank Mittelbach schrieb:
> Stephan
>  > Is it possible with the new OR to restrict floats to left-hand /or/
>  > right-hand pages?  That is, is it possible to output floats only on
>  > left-hand pages?
> not directly supported by this scheme would be a design that would only allow
> floatpages or empty pages on one side, but if that is something worth having
> once could probably accommodate for that as well --- is that what you are
> asking?


>  > (iii)  A generalization could be to let text (and floats) flow through
>  > an arbitrary page number pattern (useful for critical editions?)
> it would be interesting to come up with a spec for this. basically what would
> be missing for something like this is a way to control float pages.

Do you think the problem is different for text and float pages?  I can
think of two different ways to set-up non-linear page flow:

(i)  A direct approach:
*  Specify what pages may contain body text.
*  Specify what pages may be float pages.
*  Output both 'content streams' (body text and float pages) in
   parallel, obeying two synchronisation rules:
   -  If a page can contain both, body text and floats, becoming a float
      page has higher priority. (really?)
   -  If a page of body text is output the next float page may not occur
      before that page.  That is, the counter/index in the list of the
      /float page pattern/ has to be updated whenever a page of /body
      text/ is output.

Since I have only limited knowledge about TeX, I have no idea how a
(recurring) page pattern could be specified.

(ii)  An indirect approach:
*  Apply the normal page breaking algorithm to determine the order of
text and float pages.
*  Before a page is output check four filters:
  1. to determine if current page may contain body text,
  2. to determine if current page may not contain body text,
  3. to determine if current page may be a float page,
  4. to determine if current page may not be a float page.

pseudo code:

if (enough floating objects) && (filter_3 = true) && (filter_4 = false):
  output float page
elseif (filter_1 = true) && (filter_2 = false):
  output body text
  output blank page

As an extreme example one could write a filter that only returns true
for prime page numbers and if that is filter_3, only pages with prime
page numbers may be float pages (this is no problem, since there are
infinitely many prime numbers :)

For the semioneside problem, I'd choose the first approach.  Specify (by
means beyond my TeX knowledge) that only odd pages my contain text and
only even pages may be float pages.  But the second approach would work
as well with proper filters.

Giving it another thought, I don't know if I'm mixing it all up.  The
semioneside case is no good example, since it presents quasi-linear page
flow.  Non-linear page flow can only be realized with the first approach.

Still another thought:  both approaches are different stages of one
general approach.  Whereas the first stage works with a plan what page
number to consider next for a content stream, the second stage allows
exceptions to that plan via filters.  For the semioneside problem, this
is so simple that it can be stated in terms of exception rules.

(For stage two an option is needed to determine if filters operate on
original page numbers or on re-ordered page numbers.)

Best regards,
Stephan Hennig

PS:  Do you know other text processing applications that allow
non-linear page flow?  What approach is taken there?