Code Reading Colophon

다음은 CodeReading 원서 끝 부분에 있는 Colophon입니다. 간단히 말하면 책을 어떻게 만들고 조판했는지를 기록한 글입니다. 개인적으로 문서화나 출판에 관심이 많은데, 이 글을 보고 책을 이런 식으로도 만드는구나 하고 감탄을 했습니다. 번역서는 이와 다른 방식으로 조판될 것이므로 번역서에는 이 글(의 번역문)이 수록되지 않을 것입니다. 그게 아쉬워서 여기에 올립니다.

http://www.spinellis.gr/codereading/making.html 에도 비슷한(좀 더 자세한) 내용이 있습니다.


Colophon

Of making many books there is no end; and much study is a weariness of the flesh.

--Ecclesiastes 12:12

This book is written in 10.5 point Times-Roman, with code text set in 10.5 point Lucida Sans Typewriter. Code examples in the text appear in 8 point Lucida Sans Typewriter, and in figures in 6 point Lucida Sans Typewriter. Annotations are set in 8 point Helvetica in diagrams, and in 7 point Helvetica in the code listings.

The text was written using the elvis, vim, and nvi editors on several computers: a Mitac 6020 running Microsoft Windows 98 and RedHat Linux 6.1; a Toshiba Satellite 35 running Microsoft Windows 2000 and RedHat Linux 7.1; an IBM PC-340 running FreeBSD 4.1-RELEASE and later 4.6; and a Digital DNARD (Shark) running NetBSD 1.5-ALPHA.

Text was processed using LaTeX (MiKTeX 1.11 and 2.1) and converted into Postscript using dvips 5.86. Bibliographic references were integrated with the text by MiKTeX-BibTeX 1.7 (BibTeX 0.99c). Diagrams were specified in a declarative, textual form and converted into encapsulated Postscript by the GraphViz system dot program, version 1.8.6. Screen dumps were converted into encapsulated Postscript using programs from the outwit and netpbm systems. We also used GNU make to coordinate the build process and RCS to manage file revisions (480 revisions on last count).

We wrote a number of Perl scripts to automate parts of the production process. Most were processed by Perl 5.6.1. All the annotated code examples were specified textually with commented code delimited by special character sequences.A Perl script converted the annotated code into encapsulated Postscript. Similarly, the code-reading maxims, the book’s index, and the source code list were generated by LaTeX macro output postprocessed by Perl scripts. Another script converted the manuscript’s initial British spelling into American spelling through OLE calls to the Microsoft Word spell checker.We also wrote a Perl script (nowpart of the GraphViz distribution) to visualize a directory’s structure as a dot diagram. Its outputwas hand-tuned to create Figures 6.1 (page 182), 6.2 (page 184), 6.3 (page 185), 6.4 (page 187), 6.5 (page 188), and 9.24 (page 321). Writing a book can be a lot more enjoyable if it involves some coding.