My Newsletter

Using TEX to Do A Newsletter

By Hunter Goatley

This document attempts to describe how my plain TEX newsletter format works. The documentation is sparse, but I hope to let it speak for itself through the use of examples. Will they be meaningful examples? Probably not. But, hey, I’ll give it a shot.

I started producing Lights Out!—The Robert R. McCammon Newsletter in June 1989. For those who don’t know, Robert R. McCammon is a very popular author whose books have primarily been categorized in the horror genré. His latest, Boy’s Life, was published in hardcover by Pocket Books in August 1991. Boy’s Life is not horror—it’s a wonderful tale of how 1964 looked to a 12-year-old boy. There’s a mystery, but the book is primarily about remembering life when you were young. I urge you to find the book and give it a try. Here are quotes from a couple of reviews of McCammon’s previous novel, Mine:

• “Mine grips you tightly by the throat, right at

the start, and squeezes. … ”

—The New York Daily News

• “McCammon at his very best … and then some.” —The Birmingham News

Well, enough about Robert R. McCammon. Even if you don’t like horror, I think you’ll like McCammon’s work. Other titles include Swan Song, Blue World, and Mystery Walk.

I’ll now break and we’ll start a new sub-article under this main article. I used this approach in a regular column entitled “Things Unearthed,” which consisted of various news items about new book releases and other news items.

Why I Chose TEX Over Ventura and PageMaker

When I decided I was going to start producing a newsletter, I started looking at the options I had available to me. Because I’m a VAX systems programmer, I preferred to use something on the VAX. I had had some exposure to TEX and knew that it would do the job, but I thought I’d look at PC-based choices.

I played around with PageMaker some, and read about Ventura—and decided that they were way too clumsy to do what I wanted. I liked the fact that TEX used regular text files with embedded commands— I could use the editor I was accustomed to, TEX was available for a variety of platforms, and TEX was incredibly flexible.

So I decided on TEX, I had to decide if I was going to use TEX or LaTEX. But that’s another sub-article.

Why I Chose Plain TEX Instead of LaTEX

I had originally intended to use LaTEX, because that’s what the technical writing group of my employer-at-the-time was using to produce their manuals. I knew that I wanted multiple columns and to be able to switch back and forth between single- and double-columns on the same page at will. After trying many variations of the LaTEX double-column style, I finally decided I couldn’t easily do it. (This was before Frank Mittelbach’s LaTEX macros appeared in The TUGboat.)

So, once I decided on TEX, I decided I better learn about TEX so I could write my own macros. Two years later, I still modify the file some, but it has been lots of fun and I learned a whole lot about TEX.

I’ve since learned that, apparently, not many people use plain TEX. Personally, I don’t know why everybody

Nothing beats TEX. Nothing.

Hunter Goatley

flocks to LaTEX—plain TEX is so much more flexible. It is true that you need a default set of macros to get you going, but once they’re there, I believe TEX is actually easier to use than LaTEX.

An aside here: if you haven’t seen TEX for the Impatient, by Paul W. Abrahams, I strongly recommend a copy. It’s a great reference book for plain TEX, and his eplain.tex (Extended Plain TEX) provides some very useful macros. It was published last year by Addison-Wesley.

Some of the Highlights of the Newsletter Format

There are variety of commands provided by my newsletter format. Because Lights Out! covered a horror author, some of the commands are specifically designed to handle books and interviews. While I was developing the format, I tried to make sure that I kept things as generic as possible so that it could be used to generate other newsletters. It remains to be seen if whether or not I was successful.

Page 1  Vol. 1 No. 1

Goat Droppings!

This is inside a \shadowbox.

This is a figure across the whole page.

I’ve included the commands \twelvepoint,

\elevenpoint, . . ., \eightpoint to change font sizes.

I didn’t do these the “official” TEX way (font families) out of laziness. To get the eight-point font cmss8 you simply type: \eightpoint\ss, probably within a group.

My multiple columns command supports up to 6 columns on a page. When you increase the number of columns on a page, you usually need to change the font size (for three columns, I switched to the cmss8 font— it seemed to work out OK because the sans serif font helped differentiate between the “Letters” column and the rest of the newsletter).

One of the things that seems to be hardest in TEX— especially when multiple columns are involved—is the insertion of figures. I like things to be very structured— the mathematical side of me, I guess—so when I added figure support to my macros, I did it by setting up my multiple column output routine to place figures in certain locations on a page. You can specify that a figure is inserted across the entire page at the top and bottom of the page, or at the top, middle, or bottom of each column. Here comes the really kludgy part of my format.

The macro \definefigs must be executed to tell TEX how many pages are following that may contain figures. What happens is that a large block of boxes is allocated. I tried various combinations to make it more dynamic, but had little luck. Because of time constraints, I went with the way that worked. This shouldn’t really cause a problem, because you define figures within an article, and most articles aren’t so long that you exceed the number of boxes TEX has. The command to define a figure is:

                                                      \definefig{Page}{Column}{Position}{Box}

where Box is a \vbox containing your figure. This can be an empty \vbox \vfill’ed to the correct size for later pasting. The quote on the previous page was inserted with a \Quote as the argument to the

                                                  \definefig command.

That’s all I’m going to say about the commands for now. Notice that when you end the double columns, they are automatically balanced.

This Is Another Article

By Me, Of Course

This is more just to show that you can also do three-columns on the same page with single- and double-column formats without TEX complaining about it. I hope this example has been of some use to you.

Note that balancing these columns still has a few glitches— but nothing adding or subtracting a few words won’t fix. I’ve been using this format to generate five newsletters so far.

This is more just to show that you can keep both single-, double-, and triple-column formats on the same page. TEX won’t complain about it at all (usually).

August 1991  Page 2