Received: via tmail-4.1(11) (invoked by user schoepf) for schoepf; Fri, 11 Aug 2000 10:57:36 +0200 (MEST) Received: from mailgate1.zdv.Uni-Mainz.DE (mailgate1.zdv.Uni-Mainz.DE [134.93.8.56]) by mail.Uni-Mainz.DE (8.9.3/8.9.3) with ESMTP id KAA03982 for ; Fri, 11 Aug 2000 10:57:35 +0200 (MEST) MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----_=_NextPart_001_01C00372.319E8000" Received: from mail.listserv.gmd.de (mail.listserv.gmd.de [192.88.97.5]) by mailgate1.zdv.Uni-Mainz.DE (8.10.1/8.10.1) with ESMTP id e7B8vZe25276 for ; Fri, 11 Aug 2000 10:57:35 +0200 (MET DST) Received: from mail.listserv.gmd.de (192.88.97.5) by mail.listserv.gmd.de (LSMTP for OpenVMS v1.1a) with SMTP id <13.6939555E@mail.listserv.gmd.de>; Fri, 11 Aug 2000 10:57:31 +0200 X-MimeOLE: Produced By Microsoft Exchange V6.5 Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 467590 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Fri, 11 Aug 2000 10:57:29 +0200 Received: from relay.uni-heidelberg.de (relay.uni-heidelberg.de [129.206.100.212]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id KAA20467 for ; Fri, 11 Aug 2000 10:57:27 +0200 (MET DST) Received: from istrati.zdv.uni-mainz.de (p3E9E2F85.dip0.t-ipconnect.de [62.158.47.133]) by relay.uni-heidelberg.de (8.9.3+Sun/8.9.3) with ESMTP id KAA26788 for ; Fri, 11 Aug 2000 10:57:25 +0200 (MET DST) Received: (from latex3@localhost) by istrati.zdv.uni-mainz.de (8.9.3/8.9.3/SuSE Linux 8.9.3-0.1) id KAA30528; Fri, 11 Aug 2000 10:52:45 +0200 Return-Path: X-Mailer: VM 6.75 under Emacs 20.4.1 X-Authentication-Warning: istrati.zdv.uni-mainz.de: latex3 set sender to frank.mittelbach@latex-project.org using -f Content-class: urn:content-classes:message Subject: proto-type of new output routine available Date: Fri, 11 Aug 2000 09:52:45 +0100 Message-ID: <14739.48861.489686.131120@istrati.zdv.uni-mainz.de> X-MS-Has-Attach: X-MS-TNEF-Correlator: From: "Frank Mittelbach" Sender: "Mailing list for the LaTeX3 project" To: "Multiple recipients of list LATEX-L" Reply-To: "Mailing list for the LaTeX3 project" Status: R X-Status: X-Keywords: X-UID: 3586 This is a multi-part message in MIME format. ------_=_NextPart_001_01C00372.319E8000 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Hi everybody, apologies for keeping quit for a long time (especially to Lars, for not reacting to his interesting post yet) but I was both ill and busy. I'm leaving for Oxford in an hour to talk about the new output routine = work, and to make sure that this is not a completely accademic exercise I = tried my best to get the code into a shape for others to play with it (well, you = are to judge if I suceeded in that) --- only half a year late, I know but then = it's not even June, is it? only beta-June since a few days :-) well, the code is at http://www.latex-project.org/code/experimental/xor.tgz and below is the xo-README.txt file for it. (there is no subdirectory = yet containing the unpacked files because my quota exceeded :-() hope you don't find too many bugs with it cheers Frank ----------------------- % % $Id: xo-README.txt,v 1.1 2000/08/11 07:04:34 latex3 Exp $ % % INTRODUCTION =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D This directory contains the first prototype implementation of the new output routine (OR) for LaTeX2e*. It is not a finished product, thus it is very likely that using it will result in errors or problems. Especially error recovery is more or less nil, eg, there are a lot of places which simply say \ErrorFooBar (which is undefined). So if this happens to you, you might have to search in the code to see why this is supposed to be a user error. Nevertheless, I hope that playing around with it will give you some idea about how the finished OR might look like and what it will be able to do. Suggestions, comments, ... are welcome, especially on the already available functionality or on missing functionality. enjoy Frank August 2000 INSTALLATION =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D This set of packages builds on the basic packages templates.sty ldcsetup.sty xparse.sty so you need to pick those up from the project web site as well. To unpack the distribution use one of the three distributed .ins files: xo.ins % unpacks without any tracing code whatsoever xoprogress.ins % unpacks with progress information code (recommended) xotrace.ins % unpacks with tracing code (for those who like to see % what the algorithm really does) DOCUMENTATION =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D The sequence pdflatex xoutput.drv makeindex -s gind.ist xoutput pdflatex xoutput.drv will produce a pdf file of roughly 150 pages with the (somewhat) documented code --- there is still a lot to do there. To produce some overview article on the OR run latex xo-pfloat three times. There will be a question asked which you can answer with either 0 % run with normal latex 1 % run using the new OR There is also a sample file for you to play with: xo-sample.tex but is is more or less a template file. There is also the file I used for the examples for my talk at Oxford: oxford-trial.tex This file asks for a "trial" number: 0-8 shows how the algorithm adds float after float to the page 9 same as 8 but uses grid layout 10 manual float control using an .fpc file IMPLEMENTED FEATURES =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Plenty I hope, for important ones see xo-pfloat and of course the documented code :-) MISSING FEATURES =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Plenty I fear. Here are a few important ones. - Interface for specifying spanning floats is missing - Interface for specifying which areas are allowed for a float - Interface for specifying the look and setup of a float page - Most of the page layout things like folio, running headers, etc - More float placement control (what is wanted, needed) - Balancing of columns, what are the appropriate concepts with respect to floats? - page style concepts: how are page styles changed, how are they specified? KNOWN BUGS =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Plenty I fear. Here are a few important ones. - There are many footnotes in the code that say CHECK! or FIX! or ... they are all places where further work is most likely necessary, or known bugs are already documented. - Because of the unfinished work in xo-final/xo-new there are two hardwired lists \bot@areas and \top@areas. Top areas are mounted first on the page, thus entries for list of figures etc, will be sort of strangely ordered :-) - If a special penalty such as the flush point penalty ends up at the top of a column any glue after it isn't properly removed. This needs fixing and while the way to proceed is clear it is not yet implemented. - If we have to relax the float placement conditions due to a flush point the current code reverts to tight conditions the moment the last affected float has been placed (the idea was to ensure that we don't place too many floats on such a page since the relaxed conditions do not have a restriction there). But the problem with that approach is that in fact in most cases this will result in no further floats being allowed at all since typically the already placed floats make any further trials fail now. So this needs some change, eg only to check columns after the flush point with the tight conditions or ... for the moment it has only be partially resolved by enabling basically only the restrictions on number of floats per column or space available in columns (which are only checked for areas under trial) - If the design allows strange placements in various areas, then ".lot" files etc will as a result always be ordered strangely. There is not much you can do about that on this stage (even if the above problem is fixed) other than ensuring that at some later stage such files get sorted automatically. - Float pages are at best strange. what are good concepts to construct them in multi-column layouts? Are there any? - Size of a here float is not properly calculated when it get initialized - Grid layout requires that \topskip=3D\baselineskip (or so it seems --- it shouldn't but there is somewhere a bug lurking) - Definition of grid layout point commands need one more indirection to allow turning them off for a single page setup. Right now, the moment they are disabled they are gone. - Initialization of the various data structures is not yet properly done --- this needs further sorting out. As a result it is likely that some setups run into undefined variables. - If \readfloatplacements is used (ie float are manually placed) then the positioning of the float areas is done incorrectly because I forgot to add the necessary code to that part of the processing (just found out while finishing the examples for the Oxford talk) FOUND A BUG? =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D If you think you have found a real bug (not just something that is simply not yet implemented) I would be glad if you report it using latex latexbug from the standard LaTeX distribution and select option 7) expl3: Experimental packages for TeX programmers. (expl3) or alternatively by discussing it on LATEX-L (see below) DISCUSSION OF FEATURES (MISSING OR ELSE) =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Discussion of features, either those implemented or those missing should be directed to the discussion list LATEX-L so that others can participate in the discussion. You can subscribe to this list by sending a mail with the line SUBSCRIBE LATEX-L Your Name to listserv@URZ.UNI-HEIDELBERG.DE ------_=_NextPart_001_01C00372.319E8000 Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable proto-type of new output routine available

Hi everybody,

apologies for keeping quit for a long time (especially = to Lars, for not
reacting to his interesting post yet) but I was both = ill and busy.

I'm leaving for Oxford in an hour to talk about the = new output routine work,
and to make sure that this is not a completely = accademic exercise I tried my
best to get the code into a shape for others to play = with it (well, you are to
judge if I suceeded in that) --- only half a year = late, I know but then it's
not even June, is it? only beta-June since a few days = :-)

well, the code is at

  http://ww= w.latex-project.org/code/experimental/xor.tgz

and below is the xo-README.txt file for it. (there is = no subdirectory yet
containing the unpacked files because my quota = exceeded :-()

hope you don't find too many bugs with it

cheers
Frank


-----------------------
%
% $Id: xo-README.txt,v 1.1 2000/08/11 07:04:34 latex3 = Exp $
%
%

INTRODUCTION
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D

This directory contains the first prototype = implementation of the new
output routine (OR) for LaTeX2e*.

It is not a finished product, thus it is very likely = that using it
will result in errors or problems.

Especially error recovery is more or less nil, eg, = there  are a lot of
places which simply say \ErrorFooBar (which is = undefined). So if this
happens to you, you might have to search in the code = to see why this
is supposed to be a user error.

Nevertheless, I hope that playing around with it will = give you some
idea about how the finished OR might look like and = what it will be
able to do.

Suggestions, comments, ... are welcome, especially on = the already
available functionality or on missing = functionality.

enjoy
Frank

August 2000





INSTALLATION
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D

This set of packages builds on the basic = packages

 templates.sty
 ldcsetup.sty
 xparse.sty

so you need to pick those up from the project web site = as well.

To unpack the distribution use one of the three = distributed .ins
files:

 xo.ins         % = unpacks without any tracing code whatsoever
 xoprogress.ins % unpacks with progress = information code (recommended)
 xotrace.ins    % unpacks with = tracing code (for those who like to see
          &nbs= p;     % what the algorithm really does)


DOCUMENTATION
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D

The sequence

 pdflatex xoutput.drv
 makeindex -s gind.ist xoutput
 pdflatex xoutput.drv

will produce a pdf file of roughly 150 pages with the = (somewhat)
documented code --- there is still a lot to do = there.

To produce some overview article on the OR run

 latex xo-pfloat

three times.

There will be a question asked which you can answer = with either

 0    % run with normal = latex
 1    % run using the new = OR


There is also a sample file for you to play = with:

 xo-sample.tex

but is is more or less a template file.

There is also the file I used for the examples for my = talk at Oxford:

 oxford-trial.tex

This file asks for a "trial" number:

 0-8 shows how the algorithm adds float after = float to the page
 9   same as 8 but uses grid = layout
 10  manual float control using an .fpc = file



IMPLEMENTED FEATURES
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D

Plenty I hope, for important ones see xo-pfloat and of = course the
documented code :-)


MISSING FEATURES
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D

Plenty I fear. Here are a few important ones.

 - Interface for specifying spanning floats is = missing

 - Interface for specifying which areas are = allowed for a float

 - Interface for specifying the look and setup of = a float page

 - Most of the page layout things like folio, = running headers, etc

 - More float placement control (what is wanted, = needed)

 - Balancing of columns, what are the appropriate = concepts with
   respect to floats?

 - page style concepts: how are page styles = changed, how are they
   specified?



KNOWN BUGS
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D

Plenty I fear. Here are a few important ones.

 - There are many footnotes in the code that say = CHECK! or FIX! or
   ... they are all places where further = work is most likely
   necessary, or known bugs are already = documented.

 - Because of the unfinished work in = xo-final/xo-new there are two
   hardwired lists \bot@areas and = \top@areas. Top areas are mounted
   first on the page, thus entries for list = of figures etc, will be
   sort of strangely ordered :-)

 - If a special penalty such as the flush point = penalty ends up at the
   top of a column any glue after it isn't = properly removed. This
   needs fixing and while the way to = proceed is clear it is not yet
   implemented.

 - If we have to relax the float placement = conditions due to a flush
   point the current code reverts to tight = conditions the moment the
   last affected float has been placed (the = idea was to ensure that we
   don't place too many floats on such a = page since the relaxed
   conditions do not have a restriction = there). But the problem with
   that approach is that in fact in most = cases this will result in no
   further floats being allowed at all = since typically the already
   placed floats make any further trials = fail now. So this needs some
   change, eg only to check columns after = the flush point with the
   tight conditions or ... for the moment = it has only be partially
   resolved by enabling basically only the = restrictions on number of
   floats per column or space available in = columns (which are only
   checked for areas under trial)

 - If the design allows strange placements in = various areas, then ".lot"
   files etc will as a result always be = ordered strangely. There is
   not much you can do about that on this = stage (even if the above
   problem is fixed) other than ensuring = that at some later stage such
   files get sorted automatically.

 - Float pages are at best strange. what are good = concepts to
   construct them in multi-column layouts? = Are there any?

 - Size of a here float is not properly = calculated when it get
   initialized

 - Grid layout requires that = \topskip=3D\baselineskip (or so it seems
   --- it shouldn't but there is somewhere = a bug lurking)

 - Definition of grid layout point commands need = one more indirection
   to allow turning them off for a single = page setup. Right now, the
   moment they are disabled they are = gone.

 - Initialization of the various data structures = is not yet properly
   done --- this needs further sorting out. = As a result it is likely
   that some setups run into undefined = variables.

 - If \readfloatplacements is used (ie float are = manually placed) then
   the positioning of the float areas is = done incorrectly because I
   forgot to add the necessary code to that = part of the processing
   (just found out while finishing the = examples for the Oxford talk)


FOUND A BUG?
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D

If you think you have found a real bug (not just = something that is
simply not yet implemented) I would be glad if you = report it using

 latex latexbug

from the standard LaTeX distribution and select = option

 7) expl3:    Experimental = packages for TeX programmers. (expl3)

or alternatively by discussing it on LATEX-L (see = below)



DISCUSSION OF FEATURES (MISSING OR ELSE)
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D

Discussion of features, either those implemented or = those missing
should be directed to the discussion list

 LATEX-L

so that others can participate in the discussion. You = can subscribe to
this list by sending a mail with the line

 SUBSCRIBE LATEX-L Your Name

to listserv@URZ.UNI-HEIDELBERG.DE

------_=_NextPart_001_01C00372.319E8000--