Converting aft-files to rtf-files

Eva Maria Krause

Version 1.0
revised 12/10/2001

Preliminaries

It would be very nice to have a dat-file for direct RTF-output from aft-files. In fact, there are convertors from HTML to RTF or from LaTeX to RTF, but a direct way seems to be much more natural. When trying to write such a file there arise a lot of problems. The solutions proposed here are realized by some post-processing of the generated rtf-file, which is done by a little perl-script named "postrtf.pl". For this purpose the dat-file contains some commands, which can't be directly interpreted by an rtf-reader. They only serve as markup-commands needed in the perl-script afterwards.

Problems and their solution

Missing spaces

First of all, lines in rtf-files are concatenated without intermediate spaces. Therefore the generated output must be modified by concatenating lines with additional spaces.

Numbering of ordered lists

The second problem concerns ordered lists: RTF isn't a markup-language at all. Therefore no logical structure of documents exists. It must be substituted by paragraphs, indention and so on. Unlike HTML, Tex and Lout numbering of items isn't done automatically. It must be done by hand.

Indention of nested lists

When nesting lists the indention of each item depends on the current indention level. Ordered and unordered lists can be mixed up arbitrarily. That's the reason, that unordered lists must also be handled by the postprocessing process.

Verbatim paragraphs

Verbatim paragraphs should be displayed in the same manner as typed in. Especially line breaks should be kept. In RTF this means, that each line must be preceeded by something like \par or \line\li... But in AFT-Dat-files there is no way of specifying some output code preceeding each line of a verbatim-block.

Tables

In the definition of tables the width of each column has to be specified. But the number of columns varies from case to case, so one has to insert a different number of commands like \cellx.... This can only be done in the postprocessing process by evaluating the number of columns.

Remarks

Images

Images won't be translated due to their very complicated presentation in RTF.

Nesting of named lists

Nesting of named lists is not implemented yet.

Tables

The presentation of tables only works, if the calculated number of columns by aft is correct. If the number of columns in a table varies from row to row aft calculates the number of columns only considering the first row. The generated table in rtf will then have not enough columns.

Warning

Due to the described problem of missing spaces postprocessing is necessary in every case.