# Importing LaTeX into FrameMaker

I have programmed two methods for importing LaTeX files into Adobe FrameMaker. The first and oldest is la2mml which translates LaTeX into MML (Maker Markup Language). It works reasonably well for text containing special characters and font changes. However, because the MML language is very simple, it is impossible to translate the more sophisticated features of LaTeX. These include equations, tables and pictures.

The second attempt to provide a LaTeX import facility was LaImport. This is programmed as a FrameMaker filter which invokes the API provided by the FrameMaker Development Kit (FDK). The FDK removes almost all the limitations which MML has, though there are still some LaTeX features which are very difficult to replicate in FrameMaker. Almost all the problems with importing LaTeX arise with parsing and understanding LaTeX files. LaImport is provided as a precompiled filter for the Windows platform only. (Sorry, but I cannot justify buying copies of the Unix or Macintosh versions of FrameMaker just so that I can distribute LaImport for those platforms.)

# The Two Programs

## La2MML

The la2mml conversion program is given away as a collection of C source code files. You have to compile these files on your own computer. For Unix, this should be an easy task. For other platforms, you are on your own.

The last version of la2mml which I ever created and distributed is available as a gzipped tar file, named la_mml.tar.gz.

Ken Turner at the University of Strathclyde has made improvements to la2mml. You can access his version from his webpage.

## LaImport

### Obtaining LaImport

Download the zipfile. Installation instructions are provided as the README.txt file in that zipfile.

### Information about LaImport

The following sections are excerpts from the Usage document provided with LaImport. They should give an idea of what will work and what will not work.

#### Introduction

LaTeX is a text markup language implemented by macros defined in a text formatting language called TeX. The macros are used for many purposes -- for document structure (as with the \section macro), for layout (e.g. \figure), for specifying format of text (e.g. \em), for drawing pictures, displaying tables, and many other special effects.

The LaImport program does not implement an interpreter for TeX, it is therefore limited to translating only LaTeX macros into close equivalents in FrameMaker. If your document defines and uses TeX macros or imports a style file whose macros have not been preprogrammed into LaImport, the results will be imperfect. You should anticipate having to touch up formatting and to correct deficiencies in the conversion. How much correction is required depends on which LaTeX features are used in your document.

Note that LaImport is not very tolerant of errors in the LaTeX source file. To avoid grief, make sure that the LaTeX software accepts the document before you try converting it to FrameMaker using LaImport.

#### Implemented Features

You should find that all the environments described in Lamport's book are converted to something reasonable in FrameMaker. Nesting of one environment inside another will sometimes cause trouble and not be properly converted. For example, a table where a cell contains another table will not be converted properly because of a FrameMaker limitation ... a table cell in a FrameMaker document cannot directly contain a table. (To make that work in FrameMaker, it is necessary to create an anchored frame inside the table cell, put a textbox inside the anchored frame, and put the nested table inside the textbox.)

LaTeX has excellent support for mathematics, and that includes a very rich set of mathematical symbols. Many of the symbols are not provided in FrameMaker's Symbol font. You will find that many symbols are converted to non-identical but similar looking symbols. A few symbols cannot be converted at all, and these are retained in the FrameMaker document as the LaTeX commands. For example, the LaTeX command/symbol \sqcup will remain in the document as exactly that.

#### Support for Mathematics

The LaTeX model for large chunks of mathematical formulae is as a sequence of symbols. The user may supply some extra commands or symbols to induce the right spacing, but that is as far as it goes. For example, we might have an equation written in LaTeX notation as

   A ~ = ~ B \; + \; 3 \times C

The Math module of FrameMaker insists on knowing the structure of that equation. A tree diagram that shows the structure is:
(Note: this tree diagram was specified in LaTeX and converted to FrameMaker using LaImport. The GIF file reproduced here was created from FrameMaker by using the 'save as HTML' menu command.)

LaImport has to guess the structure of an equation and will sometimes get it wrong. Although some rules of simple algebra for how operators associate are built into LaImport, the LaTeX document may use unusual symbols and may use them in unusual ways. It is guesswork as to which symbols are operators and which operators are infix or prefix or postfix, etc. You can expect, therefore, that complicated equations and equations that use unusual symbols will be converted to inappropriate mathematical structures in FrameMaker which just happen to look approximately right.

And remember that many LaTeX mathematics symbols do not exist in the Symbol font provided with FrameMaker.

## Author

Please note that the two programs are unsupported. I am not developing them any further because I do not possess a recent version of FrameMaker. (I am stuck at version 8.1 now that Adobe no longer includes this software product in its academic pricing program.)

Victoria, BC
21 June 2015