return to first page linux journal archive
keywordscontents

Book Review

LaTeX for Linux

Anyone who has worked with Donald Knuth's TeX (pronounced ``teck'') or Leslie Lamport's LaTeX (``lay-teck'') can tell you that both are extremely powerful but rather intimidating. LaTeX makes things easier but it's still hard for a beginner to grasp the connection between the marked-up text and the final, printed output. Enter Bernice Sacks Lipkin's LaTeX for Linux.

For those of you scratching your heads wondering what all this TeX and LaTeX stuff is, read on. Donald Knuth wrote TeX so he would be able to format his book, The Art of Computer Science, the way he wanted to. Rather than focusing on the aesthetics of the printed output, Knuth wanted authors to concentrate on the content of the material. As such, TeX is not a word processor where you say, ``The section heading should be larger than the other text, so I want font Becker at 14pt, and I want it centered.'' Instead, you tell TeX you want a section heading, and it automatically formats and numbers it for you. TeX is still low-level, so Leslie Lamport wrote LaTeX, a collection of higher-level TeX macros, to group some of the more common TeX commands together.

Lipkin's book is a well-written guide to the narrow, twisting path of learning LaTeX. First, I must say that the entire book was typeset using LaTeX, and as such, it provides an excellent real-life example of the various techniques within. This is a definite boon when you're trying to figure out exactly what a certain command does.

The first part of the book covers reading and understanding LaTeX. As with most programming languages, to be able to write, you must first be able to read. LaTeX is no exception. Chapter 1 covers what a LaTeX command does--the meaning of all those backslashes and curly braces. The second chapter defines concepts that TeX (and thus LaTeX) uses, such as commands, declarations, environments and scope. Chapter 3 explains LaTeX's document classes--letters, slides, articles, reports, books and so on--and how to use them.

Part II goes over things you'll need to prepare before you can start writing serious LaTeX. The fourth chapter gives you a practice template file to start working with. For die-hard Emacs fans, Chapter 5 helps you assign key bindings in Emacs to common LaTeX constructions. Since the whole point of LaTeX is to get your text into a printed (or otherwise viewable) form, the sixth chapter covers viewing and printing LaTeX files. You can convert LaTeX to HTML, text, PostScript, PDF, etc. When the inevitable errors happen, Chapter 7 will be there to help you deal with them.

The third part gets into the real meat of LaTeX. Chapter 8 covers the reserved single-character commands (such as the backslash). In the ninth chapter, we move up to single-word commands. Eventually, you'll get sick of typing the same instructions over and over again. Chapter 10 explains how to use macros and new commands to eliminate excess typing and frustration.

Part IV covers formatting text. While the default Computer Modern font LaTeX uses is nice, most people will want to use something different at times. Chapter 11 gives the nitty-gritty on everything you wanted to know about TeX's font system. When the time comes to write something in another language, you can learn from Chapter 12 how to place accents over and under characters. Like HTML, TeX and LaTeX manage spaces for you--no matter how many spaces you put between two words, LaTeX will always put in the same amount of white space. While in most cases this is a good thing, at times you'll need to tweak the amount of space, and the thirteenth chapter explains how. Chapter 14 covers lists, and Chapter 15 explains how to align and indent text.

Figures, tables and marginal notes are called ``floating objects'' in TeX, since you don't specify an exact location for them. Instead, you tell LaTeX about where you want it to be (i.e., the top of the page), and it takes care of the rest. Chapter 16 explains how this possibly confusing feature works. Most academic writings are littered with footnotes, so the seventeenth chapter covers those. Chapter 18 describes the cross-referencing system, and Chapter 19 explains how to add comments (text that LaTeX will ignore, used mostly for writing notes to yourself) in your LaTeX code.

LaTeX is commonly used for typesetting math equations, and that's what Part V is all about. Chapter 20 goes over the math symbols and the grammar for getting into and out of math mode. Chapter 21 covers single-line math modes, and Chapter 22 explains arrays (the multiline math mode).

The next few sections of the book consist of only one or two chapters each. Part VI covers formatting in box mode; Part VII explains how to insert pictures and graphics into your text; and Part VIII shows you how to put the finishing touches (bibliographies, tables of contents and indices) on your document. Part IX describes how to design style sheets. The book ends with two appendices--one on the construction of a root file, and the other detailing how to convert from LaTeX to HTML and vice versa.

While visual tools like LyX are available to make writing in LaTeX less painful, many times you'll need at least a basic understanding of the language in order to get the desired result. This book will give you that understanding. It is well-written, concise, informative, and laced with the occasional bit of humor. Not many books are this thorough.

Ben Crowder has been heavily involved with computers for the past ten years, in almost every aspect (programming, graphics, networking, music and just about anything else you can think of). He has been working with Linux for the past two and a half years and has loved every second of it. In his spare time, he enjoys reading, writing, music and tweaking things on his Linux box. He currently lives in Utah and can be reached at mlcrowd@enol.com.