Subject: TeXhax Digest V90 #5 From: TeXhax Digest Errors-To: TeXhax-request@cs.washington.edu Maint-Path: TeXhax-request@cs.washington.edu To: TeXhax-Distribution-List:; Reply-To: TeXhax@cs.washington.edu 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 ......... | .... 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 % 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 ************************** -------