Received: by nummer-3.proteosys id <01C19442.D3C4CE4C@nummer-3.proteosys>; Thu, 3 Jan 2002 11:38:48 +0100 MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----_=_NextPart_001_01C19442.D3C4CE4C" x-vm-v5-data: ([nil nil nil nil nil nil nil t nil][nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil]) X-MimeOLE: Produced By Microsoft Exchange V6.5 Content-class: urn:content-classes:message Subject: environment error recovery Date: Wed, 22 Aug 1990 10:40:20 +0100 Message-ID: X-MS-Has-Attach: X-MS-TNEF-Correlator: From: To: "Rainer Schoepf" Reply-To: "LaTeX-L Mailing list" Status: R X-Status: X-Keywords: X-UID: 228 This is a multi-part message in MIME format. ------_=_NextPart_001_01C19442.D3C4CE4C Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable I spend some time in thinking about a correct way to implement error recovery and believe that I now have something which could be called a prototype implementation. I will pass it around in a separate message. A few point to this implementation: 1) It is not polished in any respect it is not even documented I don't think that it will survive. What I like you to test is whether the algorithms used, are correct. 2) It will run as a style file within the current LaTeX. This means that it uses, e.g., \itemize and \enditemize as the internal environment names which will not be the case in the final new version. 3) If we are going to allow things like footnote etc. in environment form it is necessary to change to something different than \footnote as a starter. There has been some discussion a while ago about how to name the internal environments, I would propose to use simply a new character as a letter, for example _ and make it \s_footnote and \e_footnote or something similar. the footnote macro can then be defined as \def\footnote#1{\s_footnote#1\e_footnote} or, to make a check for missing ends as \def\footnote#1{\inner_begin\s_footnote#1\inner_end\e_footnote} 4) There is one thing that is left open in the implementation: the question whether we will provide commands that are only allowed at the outer level of environments. Something like the \outer primitive on LaTeX level. The reason for such commands is that they can catch problems of forgotten end tags that will otherwise produce error which are very difficult to track down. Take for example a \begin{figure} without an \end. LaTeX will typeset stuff into the figure until it will run out of space and depending on the TeX version this can be a few chapters later. So making, for example, section command to pop the environment stack would prevent those problems. On the other hand it would make it difficult to allow them in userdefined environments. Any suggestions and proposals? Another point: Michael said I should assign work to people, I would like to but I think this is hard to do without some response from you. *************************************************************** * So anybody please send me his opinion to Michaels proposal * regarding his/her person and time. *************************************************************** For Michael, please try the implementation against some real life documents, testing running time, finding bugs and or differences. I don't know whether it will run with the amstex.sty so this is another question of interest. (Certainly the \@aligningtrue has to be set in a few places) Frank ------_=_NextPart_001_01C19442.D3C4CE4C Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable environment error recovery

I spend some time in thinking about a correct way to = implement
error recovery and believe that I now have something = which could
be called a prototype implementation. I will pass it = around in a
separate message.
A few point to this implementation:

  1) It is not polished in any respect it is not = even documented
     I don't think that it will = survive. What I like you to test is
     whether the algorithms used, = are correct.

  2) It will run as a style file within the = current LaTeX. This means
     that it uses, e.g., \itemize = and \enditemize as the internal
     environment names which will = not be the case in the final
     new version.

  3) If we are going to allow things like = footnote etc. in environment
     form it is necessary to = change to something different than
     \footnote as a starter. = There has been some discussion a while ago
     about how to name the = internal environments, I would propose to
     use simply a new character = as a letter, for example _ and make it
     \s_footnote and \e_footnote = or something similar. the footnote
     macro can then be defined = as
        = \def\footnote#1{\s_footnote#1\e_footnote}
     or, to make a check for = missing ends as
        = \def\footnote#1{\inner_begin\s_footnote#1\inner_end\e_footnote}

  4) There is one thing that is left open in the = implementation:
     the question whether we will = provide commands that are only
     allowed at the outer level = of environments. Something like
     the \outer primitive on = LaTeX level. The reason for such commands
     is that they can catch = problems of forgotten end tags that will
     otherwise produce error = which are very difficult to track down.
     Take for example a = \begin{figure} without an \end. LaTeX will
     typeset stuff into the = figure until it will run out of space
     and depending on the TeX = version this can be a few chapters later.
     So making, for example, = section command to pop the environment
     stack would prevent those = problems. On the other hand it would
     make it difficult to allow = them in userdefined environments.
     Any suggestions and = proposals?

Another point: Michael said I should assign work to = people, I would
like to but I think this is hard to do without some = response from
you.

***************************************************************<= /FONT>
* So anybody please send me his opinion to Michaels = proposal
* regarding his/her person and time.
***************************************************************<= /FONT>

For Michael, please try the implementation against = some real life
documents, testing running time, finding bugs and or = differences.
I don't know whether it will run with the amstex.sty = so this is
another question of interest. (Certainly the = \@aligningtrue has
to be set in a few places)



Frank

------_=_NextPart_001_01C19442.D3C4CE4C--