Month: June 2010

Abiword - the undemanding heavyweight

Posted by – June 17, 2010

This article, like so many other things we do in life, started out as something else; and like so many other technological features, it started with frustration.

I have used the word processor Abiword for quite a few years. Not a love-hate relationship, but it could perhaps be described as a love-frustration relationship. You probably know how it is - you have a lot of good features, but there is one thing you really need which you know from somewhere else, and which you don’t have or which doesn’t work with this particular program.

But frustration points - later. First, I will tell you why I appreciate Abiword so much. I am actually writing this in Abiword - like I was using LyX for that review. It is nice to have things visible in the interface you are using as you go along.

Abiword is a truly lightweight application. A wordprocessing application in a very small package. It is available on GNU/Linux, the BSD family and Windows - the latter with the option of getting the portable version, which you can install on a USB stick and take with you. It is licensed under the GNU GPL v2 and available on the Abiword download page.
The interface is what you would expect from such a program - a top roll-down menu, and two menus with standard formatting features - open, save, print, cut, paste and the like on one and styles, font type, size, alignment, indentation et cetera on the lower one. By default, Abiword gives you a horisontal and a vertical ruler, and I usually turn it off, but I leave it on here just for you! The rulers allow for setting indentation, tabs and margins visually.

This application may be small, but it has some of the features associated with heavier applications and larger projects. All of the features I used in my university papers would have been available, had I used Abiword (I used OpenOffice instead, which is also worth a recommendation, but - another time): Footnotes, endnotes, references, autogenerated table of contents and so forth.

At the same time it should be said that I have recommended Abiword to a lot of people I would expect to find Word and OpenOffice Writer overwhelming, and most people - including me, most of the time - don’t need the additional applications in an office suite like spreadsheets, presentation software, database management et cetera. I think that Abiword, while adding good features and stability along the way, still manages to have some very clear and intuitive dialogs, making it easy to work with - as you can see from these two examples. The Preferences window is equally straightforward.

Abiword has a file type of it’s own - .abw files and .awt for templates; it works as it is supposed to, but additional document filters are available; without adding any filters, it will save to Microsoft Word .doc format, (X)HTML, RTF and PDF - but with the added filters, Abiword can be a strong tool for opening files from old applications; sometimes you are stuck with an old Works or Wordperfect file - or OpenOffice.org, for that matter. There is also a very good OpenDocument-import-export filter, and it handles .docx files quite well - not 1:1, but certainly rendering them readable.
Abiword is available in quite a few languages; I have done the Danish translation.

Also - some elegant solutions.
One of the things I quite like is the way to modify styles. Now, this may require an introduction of you are not familiar with the concept. Styling a document is a way of making a uniform overall design for a document. I believe it is inspired by/borrowed/stolen from LaTeX, which is entirely based on the concept that you shouldn’t be setting font types and sizes, you should just be able to indicate what is a heading, what is regular text, what is a quotation et cetera. If you are acquainted with the stylesheets associated with webpages, you are familiar with the principle: If something of this type turns up, this is how it should look.

The example here is Block Text, which is an increased-margin style for emphasis - what you would use to quote an author, for instance. There is a preview of how the font looks, and how the text will look in a page. In the preview pane, the larger margins are apparent. It is also apparent that this style inherits the traits of the Normal style, which means that it is exactly like Normal, except for the areas where it has been changed, which is just the margins here. A style can pretty much contain the text fetures you want - though it should be mentioned that the modified styles are limited to the document you are working on, and if you want the styles to remain, you should modify them to the extent you wish and save that document as the default template.
I find that it is useful when working on a larger text to define these things from the start. If you have particular wishes for font types and sizes, it is quickly done, since the styles are based on each other, so a font change cascades into the styles based on it.
Styling as a concept also extends to places one might not expect it; it is possible to style things like foot- and endnotes, the table of contents and lists. Abiword does have sensible defaults, though.
Considering the complexity of styles as a concept, this interface is about as easy to use as it gets.

Another example of a good interface for a potentially difficult concept is the selection of tools to use with the tables. Inserting the table is straightforward, but I particularly find that the intuitiveness of the tools to merge and split cells are good; I have simply never seen it done so clearly before.



Going back to setting up the table of contents, this function is a list autogenerated by headlines, which again are essentially lines of text defined with the style Heading, indented as appropriate with Heading 1, Heading 2 et cetera for the various levels, as the text is divided into parts, chapters, sections, subsections and so on. You can select whether you want the heading to be numbered in the text or not - in an academic paper it is nice to have it appearing numbered with sections and subsections, but in a book text, it looks off.
As shown here, the TOC has a setup menu available in the Format menu or by right-clicking the table. It allows for defining what styles should be used - and the numbering scheme as well, which is a nice detail.

Recently, it has become possible to add comments to the text, which in Abiword is called annotations. They are not as clearly seen as in other word processing applications, they are either underscored or shown with a different color, but this also means that they do not interfere with reading the text. It is certainly nice to have as a feature. Also, it is useful when several people are working on a document that it can be clear who made the note.

A somewhat curiously implemented function is the ability to insert a data field. This a way to have some metainformation available without putting it all into the interface, but it is not always completely intuitive. The fields shown here are fairly straightforward, and you may want to put metadata like the author in a template for, say, a business letter. Some people like to have a field in the header or footer with “Page X of XX pages”, which I suppose is useful if you have a list or something where it is not immediately apparent from context if a page is missing.

It is also possible to use this to create merged mailing. If you have a letter template and a CSV data file with client addresses, Abiword will merge the two and create a printable Abiword file with the letters you want, and it can be used with envelopes - I suppose that you could use a table to create shipping labels, too.

Okay, so these were features I would like to present. A lot of good and useful stuff. Unfortunately, there are also a few things I have to mention that subtract a bit from the final score. I think of them as challenges.

Templates. Okay, not actually templates, because as you see, opening a new document based on a template is fairly straightforward, but template management is a challenge. If you look into the documentation you find out that the document you have can be saved as a template by saving it as an .awt in the user’s template folder. Now, I personally think this is a bit clunky - since the folder is constant and can be determined, there is no reason there should be any confusion here - a “Save as template” dialog where one could enter a name and brief description should be sufficient.

Secondly, Text breaks between sections are clever for things like having varying headers or footers between chapters. There is, however, no visual cue in the Abiword interface as to where there is a section break; and the sections are not numbered in the status bar like the pages are. So it is anybody’s guess where a section break is in the text, and if you insert one by accident, you may have a bit of a problem. I filed a bug report/request for enhancement about this on the Abiword Bugzilla.

Third, I mentioned the function to insert data fields. And some of the names are intuitive enough - “page number” and “author name” I can manage. But a field like “Military time”? “Document coverage”? “Page reference”? I mean, I recognise the words, but a small description would be handy.

Fourth, the help function is a bit random. When you access the help file, it opens an HTML file. This is not necessarily in the default browser, so if you have an editor set as the default HTML association, it will open there instead. This is a minor gripe - what is more important is that the structure and contenct of the Abiword help file is less than intuitive,  and the content is quite mixed. The screenshots in the help files are not exactly fresh and appealing.

A final note which is mostly just something to wonder about - Abiword indicates using Times New Roman by default. But I never understood how this actually works - I do not have that font on my system! I usually change it in the template to Liberation or DejaVu - two nice fonts with good Unicode support; but this Times New Roman thing always puzzles me.

Which brings me to my original comment. I have been writing up points in an attempt to overhaul the Abiword Help function - to add some instructions and put them in usable categories. And as it was coming together, I thought it was a good opportunity to write a general introduction to Abiword.

To be fair, my old gripes with Abiword are mostly things of the past. The application was quite unstable for some time - one of my Abiword breaks - and that seems to be over. It used to be tied into some dependencies which made it quite cumbersome to install on Slackware, and that is no longer relevant.

And as for the Help files, well - maybe that really should be a community task, shouldn’t it? The programmers are able and ready, and the mailing lists are very responsive. There is no doubt that there is an active and appreciate community, which I am pleased and proud to be a part of. And so, I try to reset the Help interface - not building on the existing one if I can help it, but simply redoing it and trying to facelift it a bit.

JabRef - a reference manager

Posted by – June 7, 2010

I realize the latest posts have been heavily in the technography camp. This time, it still is - but going over to academics. JabRef is an application for managing references.

Academics have probably heard of the Endnote application, a program which will access databases of academic journals and allow you to generate your own bibliography; it will tie in to applications like Microsoft’s Word, so you can use it while writing papers.
Endnote is well known, but it is a closed application, and JabRef has the advantage of using the BibTeX format, the bibliographical subset of the LaTeX typesetting system. More on LaTeX another day - I already wrote about it and about BibTeX in the recent LyX article. For now, JabRef.

A reference management application is a logical product of geeks. Practically everyone who does programming professionally has gone to university or college, and it is only natural to use a computer to track your reference materials. When people start programming, they will want a target for their efforts, and reference management is so obvious that one can wonder why there isn’t more! But of course, it does require a certain effort to keep going - and there has to be a community around it. Projects like KBibTeX, Pybliographer, Zotero and OpenOffice.org’s built-in Bibliographic all offer functionality like this.

JabRef is a Java application, which from the beginning makes it cross-platform - and it has a very usable interface. Though there is quite a lot of scepticism towards Java - many people consider it quite clunky, and many java applications tend to be sluggish - JabRef is actually quite responsive.
There is an issue of personal importance to me, because I have a degree in Russian language, history and literature - it has to use Unicode correctly. When I used JabRef the first time, it did not, but now it does - and the feature set has expanded as well, making it an interesting tool.

The following screenshots can all be found in a Jabref gallery in the gallery section of Written and Read.

This is the main screen. I have loaded a small bibliography file featuring an article and a stack of books. As you can see, Unicode is supported, as the article is in Russian.
Curiously, BibTeX itself doesn’t actually support Unicode with LaTeX, but so many Unicode-supporting application can parse and use a BibTeX file that it is still useful to be able to make a Unicoded file.
As you see in this overview, it is possible to associate URLs and files with the bibliographies. This is quite handy when you use JabRef to manage materials relevant to the entry which you have stored locally. I usually link the books to their OpenLibrary entry, but obviously it is useful to track reviews, criticism and the like.
In the second screenshot, I have selected one of the entries, and the data of this entry are displayed below. Now, this is not all of the data - there is considerably more on this book - but it is possible to customize what is shown in this field. It is very useful to be able to see what you want to know.

Now, for the fun bit: To add a new entry. For this example, I will be using Bonvenon en nia mondo, an Esperanto book by Bent Jensenius.

Here is the sequence - when you want to add a new entry, press the green plus symbol on top, and a list of possible material types pop up. In this case it is a book - but the fields are different if you choose an article instead, so this is just to form an impression.
In the second screenshot, you can see the basic fields. Once they are filled out, you can press the magic wand on the left, and JabRef will generate a BibTeX key for you - the unique identifier for this particular entry. The last two are additional information. I was a bit surprised that there wasn’t an ISBN field, so I usually add it as a comment. Of course, it is possible to add it as a regular field, and maybe it is just to get ahead of the many types of identifiers.

As you see here, the program ties in to various databases, where you can fetch additional materials - when you have looked up a piece of documentation, you can add it as another JabRef entry.

JabRef opens an internal window to access the materials.
I would actually have expected it to use a browser window, but the way it displays it keeps the workflow consistent - and you don’t have to wait for a browser to load.

Now, musician and music teacher Jon Kulp alerted me to the fact that JabRef has some pretty powerful powerful export options.

He has used it to generate a materials list for his Beethoven class, and I very much like the layout. It is easy to use, and the Javascript links to fold out abstracts & reviews improves the overview of the page.

Getting into this export method, I have removed my Aigaion installation keeping track of the literature mentioned here; it just seems that much easier to export the data and upload. The data file is available here, and the resulting library file is linked on the right of this page - as the index.html file of library.writtenandread.net.

Okay, so I know things have been getting a bit technological around here lately. But I can assure you there is quite a bit of literary review in the works, so for those more interested in that genre, you won’t be disappointed.