{'fraction_non_alphanumeric': 0.025775447793796417, 'fraction_numerical': 0.001310615989515072, 'mean_word_length': 4.788874841972187, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Book review: L ATEX and Friends

It is difficult to write a new and original introductory book about LTEX today. The author must compete with a number of great books, including freely available ones like [1]. Some these books were written by the authors or primary developers of the language [2–5]. Still, people have been writing mathematics textbooks for several thousand years, and nevertheless new ones continue to be written. The way one can judge introductory LTEX textbooks is similar to how figure skating is judged. There are several “required elements” which must be present in any book, like the explanation of LTEX macros and workflow. There are also several “free elements” like additional packages or tricks the author chooses to include. The book can be evaluated by the pedagogical skill with which the author performed the “required elements”, introducing the fundamentals of LTEX, and by his choice of the “free” ones. The new book by Marc van Dongen deserves high scores in both categories. The first two parts of the book, Basics and Basic Typesetting discuss the material one can expect to find in any LTEX textbook: the organization of LTEX documents, the language constructs, the alphabet, etc. They are explained lucidly and well. What distinguishes this book from many other texts is that the author stresses the fact that LTEX is a programming language, and therefore a LTEX file is actually a program that instructs the computer to create the final product: the typeset pages on paper or on screen. This means, writes the author, that you can use software engineering techniques such as top-down design and stepwise refinement. This is a very important fact, which must be explained to the students of TEX and LTEX, especially those who are accustomed to WYSIWYG documents. A WYSIWYG document presents itself as “the final product” (this is a deception of sorts because, as any experienced user can attest, “what you finally get” is emphatically not “what you see”), while a TEX document is best viewed as a program to produce “the final product”. The author returns to this many times, discussing such software engineering concepts as maintainability applied to TEX documents. This approach would likely be very comfortable and familiar for engineers and software developers. The author’s use of Unix-like syntax for his examples adds to the impression that the target audience of the book is the people who are not afraid of compilers and can write some code. This is a very welcome development. Too often publishers prefer to print computer-related books intended for “dummies” or even “complete idiots”. While geniuses arguably do not need introductory texts, there is a perceptible dearth of books for the reasonably intelligent person. LTEX and Friends is definitely one of such books, and it makes for pleasant and useful reading. Since The TEXbook [6], many books about TEX discuss not only the typesetting program, but also other aspects of typographic art and science, discussing the rules for book design and the best practices. LTEX and Friends follows this tradition, and Bringhurst’s immortal Elements [7] is one of the most often cited books in the text. The reader learns many useful typographic facts, such as setting the punctuation symbols at the border of two types in the brighter type, the spacing in abbreviations and initials, etc. Many people from the intended audience get their first exposure to the typography from TEX-related books, and this one provides a good introduction to the subject. The author chooses PDF mode as the main way to produce the result — probably a sensible choice nowadays. He does discuss DVI mode as a quick way to get a preview of the typeset pages. He obviously prefers biblatex to the “traditional” BibTEX interface to the bibliography. Still, a description of the natbib package would be a useful addition to the discussion of the author–year bibliographies. The third part of the book discusses Tables, Diagrams and Data Plots. It contains a detailed introduction to the TikZ suite — probably one of the best existing descriptions of this highly useful package. This description alone makes the book worth buying. The section on tables, however, is smaller and less detailed; the reader who needs more should probably turn to the recent book by Herbert Voß [8] dedicated to typesetting tables in LTEX. The fourth part of the books is called Mathematics and Algorithms. The author discusses the use of amsmath and the related packages from the American Mathematical Society. Again, a reader who