Flexible Formatting with Linuxdoc-SGML
Now that we have explained the necessary “overhead”, we can start writing larger documents. Therefore, you will probably want to create sections and subsections, start the document with an abstract, and insert a table of contents. You can just add the following lines after the date line:
<abstract> Here is the abstract. <abstract> <toc> <sect>The First Section <sect1>The First Subsection
Depending on the output format you want to create, the table of contents will have different styles: in a LaTeX document you get a standard table of contents, and in an HTML file you will get a list of cross references for the different sections and subsections.
As you can see from our example, the <sect> command creates a new section and the <sect1> command a new subsection. You can access five different levels simply by increasing the number in the command name. Note that you will still have to insert the <p> command to start the first paragraph after an sectioning command. For technical documentation it is often necessary to include “verbatim” text—text that is passed through without interpretation by the SGML parser. You can do this with the <verb> command:
<verb>This text is not interpreted <verb>
However, some very special characters do need some additional handling even when they appear inside a verbatim environment. For example, the sequence of an opening angle bracket and a slash (</) has to be written as &ero;etago;. The manual that comes with the Linuxdoc-SGML package includes a list of all special characters and the commands used to enter them as literal characters.
The Linuxdoc-SGML package supports three different font styles beside the normal font: boldface, italics, and typewriter. To select a font insert the command bf, em, or tt, respectively. To switch back to the default font just use the corresponding “slashed” command, as in the following example:
This <em>text</em> is written in italics!
An abbreviated version of each of these is sometimes useful:
This <em/text/ is written in italics!
Now let's take a look at different list types that are supported:
itemize for bulleted lists
enum for numbered lists, and
descrip for description lists, as demonstrated in this list.
You just start the list “environment” with the <list> command and close it with </list>. To produce a new item (either a bullet or a number) you can use the <item> command. In the description environment, you have to use the <tag> command with an argument that contains the “keyword”, as in the following example:
<descrip> <tag/First./ This is the first point. <tag>Second.</tag> And this is the second. </descrip>
If you want to create WWW pages with this package, you may want to create cross references to other WWW pages. This is done with the <url> command, as in the following example:
<url url=-http://gnus.com/pub/text.html- name=-Text document->
This creates a link to the WWW page text.html on the specified host and displays Text document as the title of the link. When you create non-HTML documents, both the name and the URL are shown, so that the reader can still find the document.
Christian Schwarz studies mathematics in Munich and has worked with Linux for two years. He contributed the texinfo support for the Linuxdoc-SGML package. You may reach him at the address email@example.com.
Special Reports: DevOps
Have projects in development that need help? Have a great development operation in place that can ALWAYS be better? Regardless of where you are in your DevOps process, Linux Journal can help!
With deep focus on Collaborative Development, Continuous Testing and Release & Deployment, we offer here the DEFINITIVE DevOps for Dummies, a mobile Application Development Primer, advice & help from the experts, plus a host of other books, videos, podcasts and more. All free with a quick, one-time registration. Start browsing now...
- The Ubuntu Conspiracy
- A First Look at IBM's New Linux Servers
- Vigilante Malware
- Disney's Linux Light Bulbs (Not a "Luxo Jr." Reboot)
- Vagrant Simplified
- Libreboot on an X60, Part I: the Setup
- System Status as SMS Text Messages
- Dealing with Boundary Issues
- Bluetooth Hacks
- Non-Linux FOSS: Code Your Way To Victory!