Tag Archives: roff

Masters of TeX

What are these things we call ‘posts’,  ‘documents’, ‘essays’ or ‘books’? If a picture is worth a thousand words then pictures are clearly CHEATING so, for now, let’s restrict our  attention to text-only ‘things’. In an earlier post, I called them “text objects”.

I have an unusual writing technology history. I was late enough for Computer Science to exist but early enough for it not to have had much effect. My final-year project was typed on a manual typewriter, by my Mum who had the necessary ‘office skills’. I joined the workplace when type-writers were on the wane but before word-processors had taken hold. A time of daisy-wheel printers as an alternative to clickety-clack line-printing onto stripy fan-fold paper. PCs hadn’t happened yet. My first software for writing, after a text editor, was a text processor. I learned to use DEC’s Runoff to format text but I might equally have used roff, nroff or troff on Unix. They were similar tagging languages derived from Runoff for Multics. Runoff arrived at DEC via MIT’s CTSS and University of California at  Berkeley. This was an age in which an idea for software was not patentable. Everyone copied the good ideas and progressed together.

One of the key decisions in the design of the Unix operating system was that all data was a bit-stream. One type of bit-stream was the text-file: printable, characters, each represented by a unique 8-bit byte-code. Unix came with a free set of tools that allowed people who thought like programmers to manipulate text files files very efficiently. An author created a text stream with embedded ‘markup’ language to give hints about structure and style. It was a technique borrowed from publishing.

Word processors were for typists. They were an incremental upgrade to a type-writer. ‘Normal’ people didn’t think like programmers. Normal people just want to print letters, not ‘run-off’ a new copy of their maths PhD, full of strange characters, diagrams and correct pagination.

In 1978, mathematician Donald Knuth moved text-processing forward into full, commercial grade type-setting with TeX. It had all the complexity that always comes free with flexibility. Technical authors no longer needed to risk having their beautiful formulae mangled by an innumerate type-setter. Leslie Lamport introduced a macro compiler to make TeX easier to use but it was too late. The ‘adequate mouse-trap’ had been sold, to the lowest time-investment bidder. You probably came in at WordStar or WordPerfect or Word or even Google Docs and you have my sincere sympathy.

Now, you are unlikely to use a ‘text processing language’ unless you are a Unix, or more likely Linux weirdo. Which is a great shame, because, even if you are normal, you have probably started to think like a programmer. You may find yourself wanting version control or shared document authorship or multiple output formats from the same source, or with variants.

We all need to take a few steps back before we can move forward. Word processors and WYSIWYG are wrong-headed. What-You-Get is a many headed monster. You can’t see it because it may not exist yet.

I’d love to paint a happy picture now, of software tools, available Free that are going to make it all easy – but I can’t. There are 3 viable competing tagging standards: LaTeX, DocBook XML and DITA. The newer standards have fewest mature tools. The state of the Free market in this area is ‘broken’. There are commercial tools and Unix can offer you tagging modes for text editors.

This is about where I came in, in 1982. 30 years of progress lost because accountants picked the wrong path to take computer science.