STORY

Camel Book troff Macros

  • Camel Book troff Macros

  • The backstory of how my early typesetting macros created at Tektronix were adopted by O'Reilly Media, rediscovered when writing the Camel Book, and how the book authoring formats evolved from troff to FrameMaker and extended-POD.
  • The Origin of the Macros at Tektronix

    • In my first salaried job as a technical writer at Tektronix (starting in 1978), I was the most technical member of our group. We migrated to using troff for our document masters.
    • I created a custom macro package layered on top of the standard UNIX ms macros, implementing our specific Tektronix document rubrics (A-head, B-head, C-head, and so on).
    • My colleague Steve Talbott worked with me at Tektronix and later left to work with Tim O'Reilly to produce the seminal X Window System ("X books"), bringing my macro package along with him.
    • Tim and Steve used those exact macros for the X books, which helped launch the Nutshell handbook series and defined early O'Reilly book formatting.
  • "I Created Them": The Discovery on Camel 1

    • Ten years later, when pitching and signing the contract to co-author the first edition of the Camel book (Programming Perl with Larry Wall), the editors sent me the "official O'Reilly macros" and asked if I would have any trouble understanding them.
    • I replied: "No, because I created them."
    • The editors were immensely stunned. Upon inspecting the source files, my original comments were still intact inside the macro definitions—they had been copied literally and liberally, not just reimplemented.
  • Typesetting Evolution of the O'Reilly Perl Books

    • Decades later on Reddit, co-author brian d foy noted that I wrote the original books in a flavor of troff because I was a "troff god since that's how you did tech docs back in the day."
    • The actual format evolution across the book editions:
      • Camel book (1st Edition, 1991): Written entirely in the "O'Reilly" troff macros.
      • Llama book (1st Edition, 1993): Written in FrameMaker.
      • Camel 2 (1996), Llama 2 (1997), and Beyond: Migrated to extended-POD (Plain Old Documentation), which remained the standard authoring format for subsequent editions and the Alpaca book series.
These facts are as Randal recalls them, but much time has passed for most of this. If you find a factual error, please email realmerlyn@gmail.com.