From Problematic Proofs to a Stanford Program
While revising Volume 2 of The Art of Computer Programming, Stanford computer scientist Donald Knuth was dissatisfied with the proofs produced after his publisher switched to computer phototypesetting. In 1977, he turned to digital-typesetting research, seeking control over the printed appearance of mathematical books. TeX emerged to handle ordinary text, mathematical formulas and positioning on the page.
Michael Plass and Frank Liang implemented an early prototype from Knuth's design, after which Knuth wrote the complete program. In 1978, the system ran on a PDP-10 computer at the Stanford Artificial Intelligence Laboratory, using the SAIL language and WAITS operating system, with output sent to an XGP printer. Other users began participating that year.
Beeton, Berry and Walden's computing history notes that, before graphical desktop publishing became widespread, TeX used plain-text input with markup. It aimed for precise typesetting and long-term reproducibility, closely linking graduate students' development work with an author's practical book-production needs.
References: [1]
Turning a Line of Commands into a Two-Dimensional Formula
Knuth introduced the still-unfinished project in his Gibbs Lecture on January 4, 1978; the lecture was published in 1979. It used “1 \over 2” to represent a fraction, with a backslash distinguishing control commands from ordinary text. The input file did not need to draw the fraction bar or manually align numerator and denominator with spaces.
Following this notation, changing the denominator to three and entering “1 \over 3” in math mode causes the program to arrange a typeset one-third: one above, three below and a horizontal line between. It handles symbol positioning and character sizes rather than evaluating the expression and rewriting it as a decimal. This is a concrete distinction between a typesetting program and a numerical-computation program.
TeX organizes characters, rules and more complex content into boxes, arranging them horizontally into lines and vertically into pages. Spacing between boxes can stretch or shrink, bringing formulas and ordinary text into the same set of composition rules.
References: [2]
From Filling One Line to Choosing for a Whole Paragraph
Where a paragraph's first line ends affects the white space in subsequent lines. In their 1981 paper, Knuth and Plass discussed a line-breaking method that considered the entire paragraph. Instead of making an irrevocable decision as soon as a line filled, it could compare different combinations of breakpoints.
The model represented content as boxes, stretchable spaces and breakpoint penalties. Boxes had widths, spaces had natural sizes and capacities to stretch or shrink, and penalties expressed the suitability of a break at a given position. Moving a short word to the next line, for example, might improve spacing on both lines; inserting a hyphen within a word could fit more text but also increase typographic cost.
The algorithm used dynamic programming to retain better results for reaching each breakpoint, avoiding exhaustive enumeration of all combinations. Here, “best” was relative to specified widths, spacing and penalty rules, not a claim that machines could replace every aesthetic judgment. The paper turned these choices into computable, comparable program steps.
References: [3]
Manuals, Sample Books and Actual Printing
The spread of TeX depended on software and on printed material that could be studied and tested. In TeX Incunabula, Knuth recalled that the first manual appeared as Stanford Computer Science Report 675 in 1978, followed by a revised edition from the American Mathematical Society in June 1979. Later that year, the manual was included in TeX and METAFONT: New Directions in Typesetting, jointly issued by the society and Digital Press.
The early manuals were not produced on a single standardized commercial device from the outset. The first used Stanford's XGP, and the next two used two different experimental Xerox printing devices. Spreading a digital-typesetting method still involved particular machines, fonts and output resolutions.
At Christmas 1978, Knuth also participated in making a 28-page family keepsake, combining program-typeset text with linocut illustrations before sending it for printing. This showed that early experimentation had moved beyond technical manuals into practical bookmaking that combined writing, pictures and a finished object on paper.
References: [4]
Taking the Same Typeset Result to Different Devices
In a 2007 interview, David Fuchs recalled joining the project in 1978 and porting the old TeX from Stanford's WAITS environment to TOPS-20. Around 1980, the laboratory changed printing equipment; the initial plan was to write another direct-output module for the new machine.
Fuchs proposed separating typesetting from the device driver: TeX would first generate a device-independent page description, which another program would interpret and send to the printer. This became the earliest DVI output format. A new printer could then be supported by adding a driver, without requiring users to choose a version of TeX compiled specifically for that printer.
The improvement was also constrained by hardware. Early host computers had limited memory and slow serial connections, so the output format had to be compact and the device side also needed to manage font storage. TeX's early spread therefore involved not just copying source code but coordinated design of operating-system ports, output interfaces and printing equipment. The later rewrite in WEB and Pascal belonged to a subsequent development stage.
References: [5]