I was an undergraduate student when I discovered Linux in 1993. I was so excited to have the power of a Unix system right in my dorm room, but despite its many capabilities, Linux lacked applications. Word processors like LibreOffice and OpenOffice were years away. If you wanted to use a word processor, you likely booted your system into MS-DOS and used WordPerfect, the shareware GalaxyWrite, or a similar program.
That was my method, since I needed to write papers for my classes, but I preferred staying in Linux. I knew from our "big Unix" campus computer lab that Unix systems provided a set of text-formatting programs callednroff
and troff
. They are different interfaces to the same system: nroff
generates plaintext output, suitable for screens or line printers, and troff
generates very pretty output, usually for printing on a laser printer.
On Linux, nroff
and troff
are combined as GNU troff, more commonly known as groff[1]. I was happy to see a version of groff included in my early Linux distribution, so I set out to learn how to use it to write class papers. The first macro set I learned was the -me
macro package, a straightforward, easy to learn macro set.
The first thing to know about groff
is that it processes and formats text according to a set of macros. A macro is usually a two-character command, set on a line by itself, with a leading dot. A macro might carry one or more options. When groff
encounters one of these macros while processing a document, it will automatically format the text appropriately.
Below, I'll share the basics of using groff -me
to write