Report on the year June 1990 – May 1991

The DVI Driver Standards Committee^{∗}

June 1991

Abstract

In July 1990 the DVI Driver Standards Committee changed most of its members. Afterwards it revised a first draft of the DVI Driver Standard, level 0. The draft is almost finished and will be published in the next TUGboat issue. Future parts of the standard are already under discussion; but it is not decided up to now which part will be handled next.

This report describes the structure of the forthcoming standard, which topics were under discussion for the last year, who is in the committee, and which information the committee may provide for the membershipat-large. Future work is outlined.

1 Introduction

The DVI Driver Standard will be available in several stages. The basic stage is now called level 0. It covers only those driver capabilities which are really necessary to output a DVI document on an output device. All other driver capabilities will be called features (and may even be realized outside a driver). In the future we will publish several additional standard documents which will cover ranges of features; those documents will represent “tiers” built upon level 0 or on previous tiers. In this way they will be available as future stages of a complete standard. (One may doubt whether the standard will ever be complete as there may be always new features to standardize.)

The basic stage, level 0, consists of three parts:

1. The pure standard document telling what a driver must be able to do.

2. Definitions of all file formats spoken of in part 1.

3. A rationale describing why the committee has chosen the given definition in part 1, recalling discussions that led to particular decisions.

∗This report was compiled by Joachim Schrod, Secretary.

A draft of the level 0 document is about to be published for public review. Part 1 of the draft is (almost) ready; a few spelling errors and such have to be removed. Part 2 was ready, but Donald Knuth has changed the GF documentation, and this change must be incorporated. Part 3 exists only in part.

The outline of this report is as follows: Section 2 presents the committee, how it works, and how information on former discussions may be fetched. Section 3 presents the process which led to the first draft. Section 4 names the discussion topics the group encountered but which are not covered by the standard up to now. Section 5 names future work which remains to be done.

2 The Committee

2.1 The Voting Members

Effective June 1, 1991, the DVI Driver Standards Committee has the (voting) members as given in table 1.

The group of the voting members was established on July 19, 1990, with Don Hosek as chair. We did not have a secretary then. In the report year the following changes occured:

• Adrian Clark entered the committee at July 31, 1990, as a representative for the ukTEXug.

• Andrew Dobrowolski is a committee member since January 21, 1991.

• Joachim Schrod is secretary since February 3, 1991.

There are no members belonging to the NTG, to the Japanese TEX Users Group (if there exists one at all), to the Italic TEX Users Group, or to one of the newly founded groups from Eastern Europe (e.g., from Poland).

We would like to thank former members of the committee, which resigned on July 19, 1990: David P. Babcock (Hewlett-Packard), Elizabeth Barnhart (TV Guide), Stephan v. Bechtolsheim (Integrated Computer Software, Inc.), Jackie Damrau (University of New Mexico), Donald Goldhammer (University of Chicago), David Ness (TV Guide), Thomas J. Reid (Texas A & M University), David Rodgers (Arbortext, Inc.), Brian Skidmore (Addison-Wesley Publishing Co.), and Glenn Vanderburg (Texas A & M University). John Gourlay (Arbortext, Inc.) left the committee on January 21, 1991.

2.2 The Voting Procedure

The committee has no charter up to now. It will create and vote on drafts of the DVI driver standard (structured as outlined in section 1). Ammendments on the drafts may be made, the process is as follows:

Name  Organization /

Email

Don Hosek (Chair)  Quixote Digital Typography

                             dhosek@ymir.claremont.edu

Joachim Schrod (Secretary) Technical University of Darmstadt

Representative of DANTE e.V.

                             xitijsch@ddathd21.bitnet

Nelson Beebe  University of Utah

                             beebe@science.utah.edu

Bart Childs  Texas A & M University

                             bart@cssun.tamu.edu

Adrian Clark  University of Essex

Representative of ukTEXug

                             alien@essex.ac.uk

Andrew Dobrowolski  Arbortext, Inc.

                             aed@arbortext.com

Bernard Gaulle  Representative of GUTenberg

                             ucir001@frors31.bitnet

Robert McGaffey  Oak Ridge National Laboratory

                             mcgaffey%orn.mfenet@ccc.mfecc.llnl.gov

Tomas G. Rokicki  Radical Eye Software

                             rokicki@polya.stanford.edu

Jan Michael Rynning  Royal Institute of Technology, Stockholm

Representative of the Nordic Group

                             jmr@nada.kth.se

Ralph Youngen  AMS

                             rey@seed.ams.com

Table 1: Voting members of the DVI Driver Standards Committee. (Apologies if organizations are wrong, they were collected by me from the email exchange.)

1. The chair will be considered a voting member, but only in the case of a tie vote.

2. Anyone may propose an ammendment, but an ammendment not proposed by one of the voting members of the group needs a second by one of the voting members of the group. An ammendment by a voting member does not need a second. An ammendment should be clearly labelled as such and sent to the secretary. He will redistribute it to the voting members.

3. While an ammendment is on the floor, voting members may vote “Yes,” “No,” or “Abstain.” A reminder will be sent out once every 48 hours for every ammendment they have not yet voted on.

4. An ammendment will be considered “on the floor” until

(a) it has received a number of “Yes” votes greater than half the total number of voters,

(b) it has received a number of “No” votes greater than half the total number of voters,

(c) it has been explicitly withdrawn by its original proposer,

(d) all voting members of the group have voted on it, or

(e) it has been out for four weeks and has not been settled. Then it will be considered voted on with those votes received. A tie vote by the chair may be necessary then.

5. If two ammendments are submitted which would modify the same portion of the draft, the second received by the secretary will be tabled while the first is on the floor. In the event of the passage of the first, the proposer will be asked if he wants to withdraw the ammendment before it is submitted for a vote.

2.3 Retrieving Information

The discussion takes place on a Bitnet discussion list, driv-l@tamvm1.bitnet. All postings for one month are saved and may be retrieved from the Bitnet listserver (as described in our report of April 1989).

In addition I began to store all information which is available and which seems to be of interest on the anonymous ftp server ftp.th-darmstadt.de in

the directory /pub/tex/dvi-standard.

In the subdirectory driv-l all postings to driv-l are stored – this is a mirror to the service of the listserver. But there are two more important files there: Index contains the important topics of each month as one-liners. This will help the retrieval of earlier contributions to the ongoing discussion. In addition Index.last-three-months is a copy of the last three months of Index, such giving a fast access to the last handled topics.

The standard texts itself are placed in the subdirectory standards, each tier in a single file. Ammendments are stored in this directory, too. For people which have RCS at hand (it’s available for free), a corresponding RCS file is stored in the subdirectory standards/RCS. This RCS file enables the retrieval of former revisions of this tier.

In the subdirectory papers all reports of the committee will be found. In addition other important papers are stored here (if they are available and redistributable free of charge). Furthermore a BibTEX database with relevant publications on DVI drivers is available there in the file dvistd.bib.

In the subdirectory verification the DVIASM processor may be found (see page 8). In future, information on a verification suite (a so-called “trip test”) will be placed here, too.

3 The Standard, Level 0

On June 1, 1990, a first release of the draft was in existence. This release was not in TEX form, and was not written in sentences, there were only item lists.

On June 23, 1990, draft # 2 was announced. This was the first draft in LaTEX markup and with complete sentences. It was reviewed in the following discussion which led to severe changes.

The next release, as of July 19, 1990, changed the name of the draft from just a number to x.y with x as a designation for the standard part and y as a designation of the release. So this new draft was named 0.03. It adopted the notion of “tiers” for the future structure of other standard levels. This structure was proposed by Joachim Schrod and Klaus Guntermann. Furthermore appendices were added with file format specifications^{1} and with the specification how to handle the “maximal drift problem.” The step from draft # 2 to draft 0.03 was not made with a formal decision, Don Hosek simply collected all relevant contributions and put them in the draft.

Almost three months full of discussion passed until the next release (named draft 0.04) was ready on October 6, 1990. The language style of the document was changed more towards a “standards document style,” i.e., the usage of “must” instead of “should,” etc. A difference between standard text and explication was added – this has been the first (and only) step towards a rationale document. The rationale was proposed by Nelson Beebe; Thomas Reid did the final outline for the now-planned document. The step from draft 0.03 to draft 0.04 was a formal one, eight ammendments were presented (four by Don Hosek, one by Thomas Reid, and three by Joachim Schrod), and five of these eight change requests were accepted.

1These appendices were created by Joachim Schrod during a work on a brochure on all file formats which are defined in the context of TEX and . This work is not connected to the DVI driver standards committee.

A month later, on November 13, 1990, the next release was ready. Since no formal changes took place, the draft was named 0.04a (such introducing branches to releases). The changes were mainly spelling errors, typographic errors, etc., which were sent to Don Hosek via email (partly via driv-l). A bunch of these changes was covered additionally by an ammendment by Joachim Schrod, which was withdrawn then. But since Don Hosek forgot to merge all corrections sent to him he had to release draft 0.04b on January 24, 1991.

On March 25, 1991, the last two ammendments up to now (sent in on November 14, 1990 [sic!] by Joachim Schrod) passed. They would have resulted in the draft 0.05. But the job of managing the drafts has passed to the newly appointed secretary Joachim Schrod, who uses RCS (the Revision Control System) for the management task. Therefore we now have the draft 0, release 5.1. The old releases are available via RCS, they were inserted in the system in an appropriate form.

Since then no ammendments have arrived, so the level 0 may be considered as settled and will be published in the next TUGboat issue for further discussion by the membership-at-large.

4 Further Topics of Discussion

In addition to the referee process of the draft, discussions on other topics took place. I want to name the most important of them in this section.^{2}

General things worth to mention are:

• The publication of draft 0 was planned for the last regular TUGboat issue in 1990. We hope now that the end of the year 1991 will see the final approval.

• The problem of incomplete DVI files was discussed. It was raised by the question if one may assume that a driver may randomly position within DVI files and that DVI files always have a postamble.

• A change to file formats was planned: Padding should have been accepted due to transfer problems between different computer systems. This change was rejected. The reason was not only the technical problems, organizational problems must be taken into account, too (the changes would not have been approved by Donald Knuth).

2Please note that only those topics are listed which are not found in the standard up to now and which will be addressed in a future tier. If you remember an important topic which is not listed here it may be that it is already part of draft 0.

Fonts: A lot of discussions handled the fonts issue. In the meantime the discussion of this topic takes place on the email discussion list tex-fonts@math.utah.edu, this topic has now nearly disappeared on driv-l. But still important background information and important proposals may be fetched from our discussion backlogs.

• Font naming proposals were discussed in depth (and in breadth).

• How the user may control font searches.

• What to do if a font is missing:

– Due to a rounding error? I.e., up till when a font should be considered the same even when it has an other font resolution. Calculations on the possible range of rounding errors may be found in the discussion backlog. (This will perhaps be included in the rationale.)

– Algorithms were presented how such fonts may be searched without doing a full directory search.

– When to issue error messages and what contents they should have. (This will perhaps be included in the rationale.)

• There is still an undefined topic in the draft: What to do with fonts which have a checksum of zero. (The TFM definition contradicts with other definitions, e.g., the PK definition.)

• Mappings for fonts with other codings than Computer Modern (or the new codings developped by the committee on 8-bit chars) may be presented by VF files. These are not covered in the level 0 (as they are not directly needed for the output of a DVI document) but will be added in one of the next tiers.

Specials: They are always a hot topic. Two groups may be identified: The first one fears a pandora’s box to be opened, the second thinks it’s the most important thing to do. The most important submissions discussed:

• When should a driver issue a warning? Always if it comes to a nonstandard special or only if it comes to an unknown special?

• How to specify global specials was still discussed. This discussion was already mentioned in the report of April 1989.

• Teresa A. Ehling and Berthold K. P. Horn called for the standardization of specials for inclusion of PostScript graphics. This was rejected at the moment: It does not belong to level 0. Of course, it will be mentioned in a future tier, but then it will be more general than just for PostScript inclusions.

• Nelson Beebe presented a “keyword-value” approach for specials, which was widely applaused.

Maximal Drift: Maximal drift is a concept how to spread divergences between the device position and the device-indepedent position as given in the DVI file. The aim is that a reader is not to be disturbed too much. Maximal drift is covered in the level 0, as it is one of the basic functionalities of a driver. But still some important comments are worth to mention:

• PostScript drivers should do the maximal drift handling by themselves. To quote Stephan v. Bechtolsheim: “One of the things I don’t like about PostScript is that when it comes down to it you never know precisely what happens.” But this is the task of a driver. In fact, this means that a true device independent PostScript driver is not possible to make. (This will perhaps be included in the rationale.)

• Enhanced maximal drift algorithms were proposed. They cover a special handling of mono-spaced fonts (and how to discover them), problems in PICTEX-style graphics, etc.

• How to align rules consistently (without overlapping and such) was disscussed in length. Solutions are available, they are a mixture of TEX macros and driver care.

A Trip Test: Very early the demand for a trip test, i.e., a standard conformance verification suite, was outspoken. But a lot of problems arise here:

• How may one control that the output of a driver is correct? Perhaps there must be special versions of conformant drivers which output protocol stuff to which the correct results may be compared.

• A special subproblem of the item above is: How may one assert the correct maximal drift handling when source code is not available?

• What cases must be handled by a trip test?

As a first step towards the creation of such a test, Thomas Reid wrote DVIASM, a processor which takes a textual description of a DVI file and compiles it into the binary form. (A processor for the other direction which produces an output to be read by DVIASM would be of use, too.)

5 Future Work

A lot of work remains to do:

• The draft 0 must still be published, and approved.

• The rationale for the draft 0 must be written (and published).

• The committee should write a charter for itself so that it’s clearer which tasks it will handle and which not.

• The committee must decide which tier will be handled next and must formulate a first draft for it. (Public pressure calls for the tier on specials.)

• The trip test must be worked out.

• The available information on DVI drivers and the standard must be more structured and must be made available on a wider base. The newly created ftp-server in Darmstadt is a first step in this direction. After it has consolidated it will be distributed to other interested sites.

Acknowledgements

A lot of people sent their helpful comments. But we must mention a few which do not belong to the voting members and which spend a large amount of work on the standard (more than most voting members): First of all, Thomas Reid, without whom this standard would never exist. Stephan v. Bechtolsheim, Karl Berry, Pierre MacKay, and Jan Michael Rynning made substantial contributions, too.