PyTeX – Documents
|updated 20 Mar 2005|
This page summarises some published article that relate to PyTeX.
It also contains links for the download of these articles, in both dvi and PDF.
This paper explores new ways of doing input to and output from \TeX. These new ways bypass our current habits, and provide fresh opportunities.
Usually, TeX is run as a batch program. But when run as a daemon, TeX can be part of an interactive program. Daemons often that run forever, or at least for a long time. Hence the title of this paper.
Usually, parsing and transformation of the input data is done by TeX macros, with little outside help. Often, this results in input documents that only TeX can understand. Also, TeX macros can be hard to write. We demonstrate the replacement of TeX macros by an external program. This is done in real time.
Usually, TeX's principal output is a dvi representation of typeset pages, for processing by a printer driver. However, TeX's log file or console can be used to allow TeX to output the boxes it holds internally. (Alternatively, an extension of TeX could write this data out in a binary form.) Shipping out boxes rather than dvi allows an external program to do the page makeup.
Don Knuth's original conception was that TeX would be 'just a typesetting language'. In some sense he 'put in many of TeX's programming features only after kicking and screaming'. The developments described above reduce our dependence on TeX macros, and so bring our use of TeX closer to Knuth's original conception. Doing this will greatly improve its usefulness.
Traditionally, TeX is run as a batch program. However, TeX can also be run as a daemon, with a callable function interface. This paper describes the opportunities and problems that follow from this new way of using TeX.
This paper sets the stage for PyTeX.
Instant Preview allows the user to preview instantly the TeX file being edited. At normal typing speed, and on a 225MHz machine, it refreshes the preview screen with every keystroke. This paper also describes the TeX daemon.
Instant Preview is likely to be the first real application of the TeX daemon. The first production version is in preparation.
In their seminal paper of 1981, Knuth and Plass described how to apply the method of discrete dynamic programming to the problem of breaking a paragraph into lines. This paper outlines how the same method can be applied to the problem of page make up, or in other words breaking paragraphs into pages.
One of the key ideas is that there must be interaction between the line breaking and page breaking routines. It is shown that TeX can, with one important limitation, fully support such interaction.
This article also shows how TeX can, by using a custom paragraph shape and a special horizontal list, suppress hyphenation of the last word on a page.
It is not easy, using either the LaTeX or plain TeX macros packages, to construct such a horizontal list. At the time of writing, extensive use of active characters was envisaged. Now, PyTeX is put forward as the solution.
This paper is about category codes, a source of many ‘gotchas’ in (La)TeX. The usual category codes give TeX its familiar backslash and braces input syntax. With Active TeX, all characters are active. This gives the macro programmer complete freedom in defining the input syntax. It also provides a powerful programming environment.
The DOT input syntax, like TROFF, uses a period at the start of the line as an escape character. However, its underlying element, attribute and content structure is based on SGML/XML. It is both easy to use and easy to program for.
There are important similarities between Wikis and the DOT input syntax. There is also two important differences. First, the DOT input syntax will accomodate complex document type definitions. Second, DOT is awaiting an implementation.
Implementation of the DOT input syntax is possible, but somewhat complicated and inefficient in Active TeX. PyTeX is now put forward as a better implementation language.
This book is an abridgement for the lay reader of a full-scale work written for scholars, the result of a decade of study. It is that rare and valuable thing, a scholarly work accessible and interesting to the educated general reader.
The book reviewed focusses on the interaction between science, religion and technology. The review summarizes the discussion in the book.
If the reviewer were to write the review again, he would probably also discuss how the Internet has enabled a vigorous open-source software community, with GNU/Linux as a prominent example. He would also talk about Wikis, which provide a completely new publishing model.