The StartX Files: Learning the Ways of LyX
Lessons in the Circle of Life
It is 1992 and I am in New York City, with Neo-Nazis protesting outside.
I am in the City because I have just started a new job for the Institute of Electrical and Electronic Engineers working as an assistant editor in the IEEE's Transactions department. There are neo-Nazis outside because at that time, the IEEE's Transactions department was just across the street from the United Nations. Because of this, demonstrations were almost a daily occurrence outside of my office building.
The neo-Nazis were always loud, but they were never any trouble or the least bit frightening, even if you happened to be something other than Caucasian. New York's Finest certainly saw to that. The scariest thing that ever happened to me in New York, actually, was walking in parallel to Richard Simmons on Sixth Avenue on the way to the PATH station. Now that was scary.
In 1992, I am sitting in front of my new computer, trying to learn the intricacies of this Solaris operating system before me, which is what the IEEE used to compose its Transactions. The publishing software loaded on this Sun Workstation was something called Arbortext Publisher and at this time was ticking me off.
Arbortext Publisher used these newfangled doohickies called SGML and TeX (at least, new to me) to put together a document instead using a straight WYSIWYG system like the Ventura Publisher application I was used to. For the first few days, I was in Hell, using these stupid SGML tag whatchamacallits to format the text of the articles being sent in by learned professors from around the world. Being engineering articles, many of them were loaded with math equations, which precipitated the use of TeX with a Math Editor tool to build the equations sent in from those same learned professors.
But I should not complain too much about working with an SGML-based document editor. After becoming proficient in that markup language, it was a cinch to use HTML later, with its finite number of elements and properties. This was the beginning of my Web experience, as it turned out.
Also along the way, I learned how to use this powerful typesetting language called TeX--and even bought myself a copy of Donald Knuth's TeXbook, which I still have to this day. I found that yes, it is not something for the everyday worker-bee to use. But when you want your documents to be typeset as hyper-accurately as possible, then by golly, I can think of few better tools.
Today, that spiral-bound TeXbook is sitting on my desk in front of me, as I try to refresh my memory while I use LATeX with this week's word processor,LyX. There are no neo-Nazis outside, just Girl Scouts selling cookies. But the memories are all rushing back to me as I delve into the world of document processing.
Word Processors vs. Document Processors
If you approach LyX from the standpoint of including it in with all of the other word processors, you would be a bit mistaken. It is more of a document processor--less focused on the words than the structure of the document itself.. Applications within this family include the old Arbortext Publisher of my misbegotten youth, Docbook, and Interleaf, to name a very few.
For those of you who are not clear what a document processor is, I'll try to give you the nickel tour. When you put a document together in a word processor, like KOffice or OpenOffice, you will typically type in the text and then go back and add attributes to that text as you need them, like making emphasized words italic or first-level headings 18-pt Helvetica in blue. When all is said and done, the document will look very close to how it will look on the printed page.
When you put a document together inLyX, then you will typically type in the text and then go back and assign styles to that text as you need them, like giving emphasized words an Emphasis style or first-level headings a Heading 1 style. The Emphasis style could be italic and the Heading 1 style 18-pt blue Helvetica and when all is said and done, the document will look very close to how it will look on the printed page.
So, you may ask, what's the difference?
The difference is this: in word processor documents, there is no meaning attached to the attributes that are assigned. Meaning is inferred by the human reader. In document processor documents, meaning is directly assigned to text by style elements, not matter what the physical attributes of those styles may be.
Take italics, for instance. Italics is one of the more frequently used text attributes (in English), since we use it for emphasis and to denote titles of books, movies, etc. I have already used this attribute for multiple reasons in this column. You, as the reader, knew why I was applying this attribute when I did. Or, at least I hope you did.
But the text editor I used to type this column had no way of assigning meaning to the italicized phrases used here. In HTML or a "regular" document, the text is just italic. Nothing more, nothing less. This would be the case if I were using a word processor, too.
In a document processor, the situation is different. I can apply an Emphasis element to sections of text that I want to emphasize. I can apply a BookTitle element to sections of text that form the title of a book. I can also design a document template that says, okay, the Emphasis element will make text appear to be italic, and so will the BookTitle element. But no matter how I make them look, the Emphasis element will always signal the emphasized text, the title of a book will always be within BookTitle.
The advantages to this leap out at you right off the bat: first, formatting becomes much easier because you can always point the document to a new template and every element's physical attributes will immediately change to that of the template (emphasis as bold, for example). No finding and replacing, just a smooth transition to the new stylesheet.
A lot of this may sound like working with HTML and CSS technology, and there are parallel advantages. But the second major advantage to having a document structured in this manner goes beyond the look of the document. It derives from the content of the document itself. By tagging individual elements of the document, you give an enormous amount of power to those who must index and maintain such documents. Not only is text saved, but the text's meaning is recorded too. So, you can very easily create a search tool that will give you all instances of articles with Brian Proffitt as the author but ignore all of the articles where Brian Proffitt is mentioned a a blithering idiot.
Not that there are all that many of the latter, mind you.
This is the kind of ability LyX and LaTeX will give you when you use it. But how does the application itself run?