Journal home page
General information
Submit an item
Download style files
Contact us
logo for The PracTeX Journal TUG logo

From the Editor: In this issue; Next issue: Class and Style; Editorial: LaTeX-niques

Yuri Robbers

In this issue
Next issue: Class and Style
Editorial: LaTeXniques

In this issue

This first issue of 2008 is a small one, but each of the four papers teaches valuable new LaTeXniques, fitting the theme, as does Dave Walden's column.

All of these papers are hands-on technical papers. The first one, by Lapo Filippo Mori shows the use of many different packages, tools and TeXniques that will come in handy when writing a thesis. Most of this article will, however, be equally useful to people working on different kinds of manuscripts.

Jim Hefferon shows us a LaTeXnique pur sang: how to employ LaTeX in an automated work flow. His particular project is a way to automatically generate nicely laid out reports from a database, but his TeXniques are applicable in other situations as well.

Ista Zahn shows the use of the Sweave package which allows one to weave code written in the statistical language R into LaTeX source code, for one integrated document. He also teaches the use of the APA classes in this context.

Yogeshwarsing Calleecharan uses BibTeX for purposes it was not originally intended for. He shows that BibTeX can be very useful indeed for working with information that is not bibliographic in nature. Such information can often be stored in BibTeX databases, making it easy to format the output exactly as desired.

Dave Walden, in his column, has provided us with a new type of thought break, and — at least as important, if not more so — his diligent exploration of the various ways of implementing this symbol using a plethora of tools.

Thank you and enjoy this issue!

Next issue: Class and Style

For the next issue we invite readers to submit articles on Class and Style. How do you create the overall look of your paper? How do you design your chapter titles? How is this done in ConTeXt, how in LaTeX and how in ePlain? Let us now by submitting your papers!

Send your article idea to the editors.


Many people have collaborated directly or indirectly to the success of this electronic journal: the authors, particularly the ones who have worked with me in the revision process, the production editors, and the readers.

Thanks to my fellow issue editor Keith Jones, production editor Lance Carnes; reviewers Francisco Reinaldo, Will Robertson, and Jon Breitenbucher; and to others who proofread the articles and provided useful comments and feedback.

Editorial: LaTeXniques

TeX, LaTeX, ConTeXt, LuaTeX, Omega, Aleph, etc. all have one thing in common. Well, many things actually, but one thing that I would like to explore in depth here: the propensity for configuration, adaptation and automation. I don't think most serious users have written many papers before they started defining their own macros, searching CTAN for additional packages and programs, or even writing their own extensions of the system. Such TeXniques can make life a whole lot easier!

Two of the advantages of thinking things through properly and using a package or creating a macro rather than resorting to ad hoc hacks are that solutions to a problem encountered while working on one project can easily be transferred to the next project and the fact that improved solutions can easily be dropped in as a replacement of the previous version.

I'll give an example. As a biologist I used species names in many of my papers from the first time I used LaTeX in 1995 onwards. Species names traditionally consist of two names, the first one of which (the genus name) is capitalised, the second one of which is never capitalised, and both are italicised. An example is Homo sapiens. It is possible to add the name of the taxonomist who first described the species and the year this happened. Those bits of information should never be italicised.

My naive first approach was to use \emph{} every time I used a species name. I quickly fell into the trap of getting things wrong that way. One journal used \emph{} to typeset the abstract in italics, which meant my species names were no longer italicised in the abstract. Luckily I didn't just go ahead and change every \emph{} around a species name into \itshape{}. I did at least realise that if this was again not the best way of doing it, I wouldn't want to go over my document again. Instead, I created a new command

and changed every affected \emph{} into a \species{}.

That solved the problem, and is — of course — a trick that even most absolute beginners already master. Over the years, however, I have made additions to my \species{} command, which I use when working on a book. The command also automatically adds entries into my Index Taxonomicus, an index of species names. The basic version of this command is defined like this:

Soon I needed more than that still. If I had several species in the same genus, I'd want them to be indexed together: Barbus tetrazona, Barbus cumingii and Barbus melanampyx, all as sub items under the Barbus item, for example. So I came up with:
	\newcommand[2]{\species}{\itshape{#1 #2}\index{#1!#1 #2}}
This is, of course, a rather significant alteration. It requires changing each and every \species{} command in the text into \species{}{}. Luckily I already had a \species{} command to begin with, and all of them had to be changed (as opposed to the \emph{} situation where only some had to be changed, but not all), so a clever macro in my text editor (jed) sufficed.

And still it didn't end. When one keeps on using the same names over and over again in the same paper, one tends to abbreviate the genus name: Barbus tetrazona becomes B. tetrazona. If I did that, I still wanted them to be indexed properly, so I needed an optional argument in which I could pass the full genus name, for indexing purposes.

To cut a potentially long story short, after one or two years of continuous improvements and changes, I had come up with a solution that seemed to cover most cases fairly well. The code had grown in length and complexity, and I started passing it on to some of my fellow LaTeX users within the department. It seemed to be becoming a proper LaTeXnique saving people work.

Since there were still an increasing number of exceptions popping up — though luckily they were also increasingly rare or even downright obscure uses of species names — that had to be dealt with by hand, and since the code was by now ugly, incomprehensible to others and not unlike a spaghetti bolognese, I thought it wasn't quite ready for submission to CTAN yet. Maybe I was just too shy. I intended to clean up the code, write some proper documentation (in Web, of course) and maybe along the way deal with some more of the exceptional cases.

Unfortunately, research, other work with and on TeX, and maybe even Real Life kept on providing me with excuses not to clean up my species code base. Excuses I seemed all too eager to grab. I even fixed one or two rather minor bugs in AMS-LaTeX rather than publish my first ever package. And then in 2001 — 6 years after my first feeble attempt — Pieter Edelman published his package biocon. It does many things much better than my package ever did. It also does things I hadn't solved yet or hadn't even realised. It doesn't do indices though. So instead of making my own code publication-ready I decided to see if I could merge my code for dealing with indices with Pieter's code, and propose to him that he submit an updated version.

And that was in 2001. Now it is 2008. I have spent lots of time on Biology, on TeX, and on life in general. I have published several papers, a book and several megabytes worth of source code. What I haven't even started, though, is merging my species code with biocon.

So if you were reading this editorial hoping for a Good Example, I have probably disappointed you. The authors of the various papers in this issue, however, will certainly not disappoint you. I urge you, therefore, to bravely soldier on to the rest of this issue.

Happy TeXing!

Yuri Robbers.

Page generated June 9, 2010 ; TUG home page; search; contact webmaster.