[comp.text] TeXhax Digest V90 #5

TeXhax@cs.washington.edu (TeXhax Digest) (01/13/90)

TeXhax Digest    Sunday,  January 7, 1990  Volume 90 : Issue %

Moderators: Tiina Modisett and Pierre MacKay

%%% The TeXhax digest is brought to you as a service of the TeX Users Group %%%
%%%       in cooperation with the UnixTeX distribution service at the       %%%
%%%                      University of Washington                           %%%

Today's Topics:         

                   TeX yesterday, today, and tomorrow

-------------------------------------------------------------------------

Date:    12/21/89 16:11:26 GMT+1
From: QZDMGN%DRUEDS2.BITNET@CUNYVM.CUNY.EDU
Subject: TeX yesterday, today, and tomorrow
Keywords: general, TeX 3.0, EuroTeX

Dr. Reinhard Wonneberger ...... | qzdmgn @ drueds2 . BITNET
EDS +49-6142-80-3115 Fax: -3030 | Home +49-6131-57 27 85 ..
    Eisenstr.56 <N15> ......... | .... Weichselstr. 56 ....
    D 6090 Ruesselsheim ....... | .... D 6500 Mainz

The following end-of-year-letter was compiled
in connection with Frank Mittelbach to address some topics
and distribute some materials related to the further
develoment of TeX and its companions.

1) As far as I can remember, at the EuroTeX 89 meeting in
   Karlsruhe there were three Birds of a Feather meetings:

1a BibTeX:    Several suggestions and requirements were discussed.
              It was felt that BibTeX is a very important tool
              not only in the academic world, but also in the industry.
                 Anne Brueggemann-Klein has volunteered to compile
              and distribute a list of these suggestions.
              As we have nothing heard of it yet, we include a
              (possibly incomplete) list below.
                 There were complaints that it is impossible to
              get a network connection with Oren Patashnik.

    .bib distibution: It was suggested that new books and articles
              are given in bibtex format to prevent several
              hundred people making the same bibtex entry in
              parallel. I include an example.

1b MakeIndex: Several suggestions and requirements were discussed.
              Peter Schilling has volunteered to deal with these
              questions.
                 There were complaints that it is impossible to
              get a network connection with Pehong Chen.

1c TeX 3.0  : See below

2) Eurotex discussion list: At the moment a list among others,
              it might be transformed into a meta-list, with
              the other lists as subscribers. This might help
              with easy and fast distribution of general topics.

3) Cork~90:   It seems important that TUG find a way to bring
              Oren and Pehong to this meeting to allow
              working together on these topics.

4) Skalsky Dvur: Hubert Partl and I were invited to talk on LaTeX
              at the 8th European summer school in Computational
              Physics, which was held in Czechoslowakia.
              There were also some other talks referring to TeX.
                 There was an enourmous interest especially by people
              from eastern countries to get started with LaTeX,
              TeX etc., and to develop language specific adaptations.
                 As network contacts are almost non-existent, it
              seems important to think about other means of support
              for these groups.
                 As a first step, I encouraged people to write to
              TUG for information and advice.

5) TeX~3.0

To contribute to the discussion on TeX~3.0,
Frank Mittelbach and I decided to bring to your
attention a letter on some TeX enhancements
by Frank, which sums up discussions from the
EuroTeX 89 meeting at Karlsruhe (see below).

In his reply, DEK agreed to include the pageshrink change into
TeX~3.0, but made clear that he himself is definitely not going
to include any changes which would require additional primitives
or changes to the TeXbook.
However, he didn't turn down the idea of changes in general.

So we are thinking about some sort of `ETeX' (Enhanced
or Extended or whatEver TeX), which would build an
add-on on Standard TeX and Documentation and at the
same time follow the severe standard and distribution
criteria established for TeX82.

Wheres this is a topic of the future, the parallel
process of developing a future extended version of
LaTeX is already under way, coordinated by Frank
Mittelbach in close contact with Leslie Lamport.

Some guidelines were presented in the Mittelbach/Schoepf
papers at the Stanford and Karlsruhe meetings, which will
hopefully be available in the near future.

The same philosophy as with ETeX might be followed to
wrap up this present development, which might then also
be called ELaTeX.

This would also indicate that ELaTeX will build on the
enhanced capabilities of ETeX. Because of this dependency,
achievements in the field of ETeX are critical to the success
of the whole project. Hopefully, Frank will be able to
present some guidelines at one of the TUG conferences to
come.

With all the best wishes for Xmas and New Year
and greetings from Frank,

Reinhard Wonneberger

%---------------- cut here ------------------------------
Subject: BIBTEX REQUIREMENTS 89-9

The following is a collection of requirements for bibtex:

 1)   also backward references from  whole publications to parts;
would allow to process everything correctly in one pass, helps to
keep track of consitency.

 2)  Substyles like  in \documentstyle. Inclusion of  fields like
annoted should be  done  by substyles. The  style should only  do
labels and sorting.

 3)  ISBN and ISSN fields, or general Number field

 4)  Language flag  for  entry processing (no decapitalization in
German)

 5)  Language field for the language of the publication

 6)  Suggestions for the formation of cite-keys.

 7)  Substyle to make citekeys visible

 8)  Titels in name fields (Dr. is part of the name in Germany).
monks and nuns have the order: James Swetnam, S.J.
 9)  LaTeX \addcommand to add a cs that may or may not be part of
the document.

10)  Distribution of BibTeX entries through TeXhax etc., covering
at least TUGboat and Books on TeX

11)  Further development should consider standards like RAK.

12) Multiple cite keys or alias-field (to allow different systems
of reference, e.g. in different user groups)

13) bibliographic entries by bibtex  one  by  one,  e.g.  in  the
footnotes of a paper.

14) Multiple combinations like: 1.Aufl. 1980, 2.Aufl. 1982;  Band
I: 1980 II: 1984

15) Roman figures as text or macro

16)   New  fields:  ISBN,  ISSN,  comment  (problem  of  multiple
occurrence).

17) New entry: JOURNAL, YEARBOOK

                        DATE:TIME SENT
                        08-09-89 16:26
%---------------- cut here ------------------------------
@inproceedings ( HPa90
  ,crossref = "SSCTP89"
  ,author        = {Hubert Partl}
  ,title         = {{How to make \TeX{} and \LaTeX{} international}}
  ,year          =  1990
    ,editor        = {}
    ,pages         = {????}
    ,organization  = {????}
    ,publisher     = {????}
    ,address       = {}
    ,note          = {Forthcomming}
  )

@INPROCEEDINGS{RWo89d,
   crossref = "SSCTP89",
   author = "Wonneberger, Reinhard",
   title = "Structured Document Processing: The {\LaTeX} Approach",
   pages = "???--???",
   note = "Invited Paper (forthcoming)",
}

@PROCEEDINGS{SSCTP89,
   key = "TEX",
   editor = "Nadrchal, J.",
   organization = "European Summer Schools on
                   Computing Techniques in Physics,
     organized by:
     European Physical Society, Computational Physics Group;
     Union of Czechoslovak Mathematicians and Physicists,
       Computational Physics Group;
     Institute of Physics, Czechoslovak Academy of Sciences",
   title = "Man-Machine Interface in Scientific Environment.
            {P}roceedings of the
            8th Summer School on Computing Techniques in Physics,
            {September} 19th--29th, 1989",
   booktitle = "Man-Machine Interface in Scientific Environment.
            {P}roceedings of the
            8th Summer School on Computing Techniques in Physics,
            {September} 19th--29th, 1989",
   address = "Skalsk{\'y} Dv{\accent'27u}r, Czecholsovakia",
   series = {Computer Physics Communications},
   publisher = {North Holland Publishing Company},
   year = 1990,
   note = "forthcoming",
}

%---------------- cut here ------------------------------
  From the
  Letter to Don Knuth by Frank Mittelbach sent mid of November 89
  concerning \TeX{} 3.0:

.. after my visit to Stanford we had a very interesting
\TeX{} meeting in Europe where your tentative proposal
was discussed at length. This was of some importance
since the participants came from many different
countries, even Poland was represented. This made it
possible to discuss the proposed features of \TeX{} 3.0
from the viewpoint of national requirements.  The most
important outcome of this was a feeling that, at least
in some areas, the new features do not fulfil all the
needs of multilingual environments.

 In addition to the adaptation of \TeX{} to different
 languages, which is clearly the major goal of your
 proposal, other requirements were discussed.  These
 topics were raised both by professional typesetters
 and other people from industrial environments, and
 also by academic users.  Later there was a lot of
 further discussion amongst a smaller circle of
 European \TeX{} gurus.  I have tried to presort all
 these topics, presenting you in this letter only with
 those requirements that we now feel are necessary to
 make \TeX{} a stable product fit to meet the
 increasing challenges of the next decade.

    {\bf Ligature and kerning tables}\\
  In the talk about ``\TeX{} in Poland'' the presenter
  made it clear that using different languages in a
  document not only means using different hyphenation
  patterns but also different ligatures and kerning
  tables. Consider, for example, the German language: it
  does not contain the~ffi ligature.  This means either
  that a document produced in a multi-lingual environment
  needs several sets of nearly identical fonts, or that
  ligatures have to be broken up inside the document.
  The first alternative is not feasible for reasons of
  available disk-space and internal \TeX{} limitations on
  the number of fonts in a document. The second
  alternative is error-prone since it leaves ``the art of
  typesetting'' to the ability of the user.

One possible solution to the ligature problem can be
achieved by providing a ligature-exception-table which
can be accessed via a new primitive allowing removal
(or even addition?) of ligatures.  \TeX{} could then
first look up the contents of this exception table
before using the current font table.  This seems to be
a good solution since ligatures tend to be uniform
through the majority of fonts; thus the new feature
would normally be  used only for the suppression of
certain ligatures (provided of course that the fonts
contain all potential ligatures).

The kerning tables seem  to need a different approach:
in this case it is not clear whether an exception table
(which must be rebuilt very often within a macro
package), or the possibility of changing the kerning at
load-time, would serve the user better.  The second
alternative is useful only in  single-language
documents, but even this would be a big improvement.
Consider, for example, the problem of using Computer
Modern with the Polish language: as mentioned above,
many letter combinations need different kerning in this
case. Thus a dynamic kerning mechanism would make
documents portable. This would be nearly impossible if
fonts with differences only in the ligature and kerning
tables were used.

    {\bf Reconsider paragraphs after page-breaking}\\
One of the major algorithms of \TeX{} is the
line-breaking algorithm, which is able to produce
optimal line breaks by considering each whole paragraph
as a unit. But this feature also has one drawback which
makes it impossible to use \TeX{} for a large number of
applications in high-quality typesetting.

Consider the example of a style of book production in
which figures are  placed at the top of a page
and, if the figure is narrow enough, the  text flows
around it.  This style is not uncommon in high-quality
(hand) typeset books but is totally
impossible\footnote{The use of
{\tt\string\parshape} is not considered an
acceptable solution (except in rare circumstances)
since documents produced in this
way are not reusable (large parts have to be
rewritten in a second edition) and the amount of time
required to produce all the hand-adjusted pages is too
much to make it a feasible option for normal
applications.} in \TeX{}, even with macro
packages which use multi-pass strategies. The
reason is that the part of a paragraph which is not
placed on the current page can't be reformatted as
required by the layout of  the next page, e.g.\ to
make allowance for the width of the figure.

Since I think that this is the only major drawback of
\TeX{}, I wrote a change file for \TeX{}82 to prove
that this reformatting can be handled.  This was
done in haste after returning from Stanford so the code
isn't beautiful. But it shows that the required effect
can be achieved with only a few changes.

The main idea is to  make a copy of the current
paragraph and the finally chosen list of break points
in the routine {\em post\_linebreak}. Afterwards, when
the individual lines are contributed to the vertical
list, a special type of  whatsit node is placed
immediately before each hbox and this node contains a
pointer into  the saved paragraph together with a
number uniquely identifying the paragraph (to detect
problems when more than one paragraph is held over in
the contribution list). At the end of the
output-routine the contribution list is searched for
these special nodes and the part of the paragraph which
wasn't set on the current page is fed into the {\em
line\_break\/} routine again.

This is only a sketch of the algorithm.  One has
to consider the problem of  dealing with material from
display math formulas, etc.\ which might be present on
the contribution list after the lines from
paragraph.  It is also  necessary to allow for changing
the paragraph building parameters for this special
paragraph.  One possibility is to save the current
settings inside the output routine just for this case.

The mechanism will be triggered in outer vertical mode
whenever the value of an integer parameter called
\verb+\reconsider+ is positive  and it then
applies to the last paragraph.


Macro packages which use this feature will have
to avoid using \verb+\nobreak+ between paragraphs,
but this isn't a major restriction since, for example,
not breaking after a heading (this is the main use of
automatically inserted \verb+\nobreak+s) can be
achieved in other ways.

    {\bf The system interface}\\
People from industry expressed their need for a
\verb+\system+ command which would allow the execution
of  an external program and the capture of its output
in a control sequence as can be done with \verb+\read+.
The use of such a command could look like this:
      \begin{center}
      \verb+\system{+\meta{Code passed to the operating
system}\verb+} to +\meta{control sequence}
      \end{center}
A returncode could be passed in a separate integer
variable, see also next section.

This would allow, for example, dynamic allocation of
datasets from within the \TeX{} source on main-frame
systems like MVS (I could ``sing a song'' of these
problems) and would save time and money by allowing,
for example, an indexing program etc.\ to start work on
gathered material instead of re-running everything
(possibly several times).  One also has to consider
problems like database access, spreadsheet
applications, etc.\ in which a \verb+\system+ command
provides valuable help.

The main reason for asking for the inclusion of such a
command is the fact that it is already installed at
many different sites. This poses the problem of
incompatibility since applications such as calling {\sf
MakeIndex} are normally not operating system dependent.


    {\bf The input/output interface}\\
In addition to operations like \verb+\openin+ and
\verb+\openout+ it would be useful to have a command
like \verb+\openappend+.  This would avoid copying the
contents of external files to
temporary files if applications need to add some output
to already existing files.

Again, this is not absolutely necessary but it is easy
to provide and would make the interface to the
operating system more user friendly. It should be noted
that it might be useful to provide an additional
integer parameter \verb+\returncode+ to hold (read
only) the return-code of the last system call, i.e.\
the last file operation or \verb+\system+ command
(described in the previous section).

{\bf Internal registers}\\
In your proposal you said that you are going to make
the {\em badness\/} and the {\em line\_number\/}
available for inspection.  There are a few more
internal parameters which cannot at present be
examined: one of them is {\em interaction}. Looking at
interaction would, for example, allow the suppression
of terminal input in batch mode.  Of course,  this
special example could also be achieved by overwriting
the corresponding primitives and adding an artificial
switch but this would involve unnecessary overhead and
would fail in the case of an interactive change being
made to {\em interaction}.

Some of the most important registers for high-level
macro packages, namely \verb+\pagetotal+,
\verb+\pageshrink+ etc.\ should produce the correct
values when used in the output routine. You agreed to
this change in Stanford but I found that it was not
mentioned in your pre-print for {\sf TUGboat}.  These
values are important to  measure the current place on
the page. Outside the output routine they give only
an approximate value (i.e.\ the value at the end of the
last paragraph).  This change is easy: one simply has
to move the setting of {\em page\_contents\/} in the
module {\em start a new current page\/} to a later
place in the output routine.

    {\bf Math families}\\
We think that the limit of sixteen math families will
become a real  restriction within a few years.
Actually, as Barbara Beeton told me, it is already a
problem at the AMS. On the other hand, this seems to be
a limitation which is hard to overcome without
rewriting large parts of \TeX{} since it affects the
method of accessing math-characters.  Nevertheless we
should like to draw your attention to this problem
which might be one of the reasons for producing a
`\TeX{}2000?'. However, if you see a possibility of
overcoming it at low cost then we would strongly urge
you to change it to now.

Finally I'm coming to the end of this long letter. We
hope that it will help to keep \TeX{} as beautiful and
stable for the hundreds of thousands of   users all
over the world in the next decade as it is has been
during these last years.

  \closing{Yours sincerely}
Frank Mittelbach

-----------------------------------------------------------------------

%%% Further information about the TeXhax Digest, the TeX
%%% Users Group, and the latest software versions is available
%%% in every tenth issue of the TeXhax Digest.
%%%
%%% Concerning subscriptions, address changes, unsubscribing:
%%%
%%%  BITNET: send a one-line mail message to LISTSERV@xxx
%%%         SUBSCRIBE TEX-L <your name>    % to subscribe
%%%      or UNSUBSCRIBE TEX-L
%%%
%%% Internet: send a similar one line mail message to
%%%           TeXhax-request@cs.washington.edu
%%% JANET users may choose to use
%%%           texhax-request@uk.ac.nsf
%%% All submissions to: TeXhax@cs.washington.edu
%%%
%%% Back issues available for FTPing as:
%%%          machine:              directory:  filename:
%%%   JUNE.CS.WASHINGTON.EDU         TeXhax/TeXhaxyy.nn
%%%              yy = last two digits of current year
%%%                       nn = issue number
%%%
%%%\bye
%%%

End of TeXhax Digest
**************************
-------