Adobe FrameMaker Desktop Publishing (DTP) software
FrameMaker = DTP since the 1980s
FrameMaker is a DTP (Desk Top Publishing) program, with a long history: Frame Technology Corp. was founded in 1986; acquired by Adobe in 1991; see Wikipedia's article on FrameMaker for more background.
FrameMaker Availability: old *IX; now Windows-only
FrameMaker was one of the first commercial WYSIWYG editors available on UNIX systems such as SUN workstations, and was available on many UNIX workstations and minicomputers (in addition to SUN: Apollo, Data General, MIPS, Motorola, Sony, NeXT, and IBM AIX).
Because of this, the technical documentation of many computer companies, hardware and software, active in the 1990s was written in Framemaker, and there is still sizeable legacy as of 2014 (e.g. Intel, AMD, MIPS).
FrameMaker was made available on Microsoft Windows as of 1992 (FrameMaker 3.0). As of 2009 (FrameMaker 9) support for all non-Windows platforms was dropped. I.e. FrameMaker as of now is a Windows-only product.
(Some companies with legacy FrameMaker document bases still use older versions of FrameMaker on non-Wintel platforms, e.g. Frame 7 (circa 2000) on SUN machines.)
File Types
FrameMaker's "native" file format is a proprietary binary format, suffixed ".fm". FrameMaker files can be grouped as books, suffixed ".book".
Since early days FrameMaker has supported a text format, MIF (Maker Interchange Format), suffixed ".mif".
Since FrameMaker 5 in 1995, FrameMaker has supported SGML.
Modern FrameMaker falls into two camps: the original binary Unstructured file formats, and the newer structured SGML / XML file formats.
FrameMaker, of course, has the ability to generate PDF, ASCII text, HTML, etc.
Standard FrameMaker does not support conversion to/from other formats such as TeX and LaTeX, but there have been many unofficial scripts and tools to accomplish such - usually by conversion to/from MIF (Maker Interchange Format).
Automating FrameMaker
Technical Writers are a large part of FrameMaker's target market, and are often not very sophisticated computer users (i.e. non-programmers).
Nevertheless, in maintaining large technical documents (such as the Intel Software Developer's Manuals, several thousand pages, which were in FrameMaker as recently as 2005), automation of manual tasks is highly desirable.
The text MIF (Maker Interchange Format) has historically been very useful in this regard, as have the textual SGML and XML file formats. If you can write a Perl or Python script, you can manipulate many aspects of Framemaker documents, so long as you can find the MIF, etc., features documented. See, for example, the Adobe FrameMaker 9 MIF Reference (2008).
Early versions of FrameMaker had a simple scripting language called fmbatch. It could be used for many simple tasks, e.g,. converting a binary .fm file to .mif, fm2mif and mif2fm, but was not very powerful.
Later versions of FrameMaker had the FDK, Framemaker Developer's Kit - a C level API.
Many legacy projects were frustrated when fmbatch support was dropped. Warning-Opinion: Compiling simple tools using the FDK was considered unacceptable for simple ad-hoc projects and Makefiles; I conjecture this was one of the reasons that many companies switched away from FrameMaker. End-Opinion. Several companies sell automation tools similar to but more powerful than fmbatch.
Most recently, FrameMaker has introduced ExtendScript, Javascript plus enhancements, to perform automation. ExtendScript is well suited towards extending the GUI, adding menu items, etc; it is possible, although much less convenient, to write command line tools using ExtendScript (using the Windows Command Shells, or Cygwin Shells, or shell scripts on Linux remote controlling FrameMaker on Windows.) See Adobe Creative Suite 5 / Javascript Tools Guide for an overview of features common the the several Adobe applications that use JavaScript, and the Scripting Guide / Adobe Framemaker 10 for features specific to FrameMaker ExtendScript. If you want "whole manual" PDFs you must often content yourself with full releases for older versions of FrameMaker; current versions may have similar documentation in development kit Help and/or on random Adobe webpages.
As far as I know there is no FrameMaker equivalent of CPAN. Some examples of FrameMaker automation using ExtendScript can be found on Adobe's webpages; many can be found on the webpages of techpubs consultants, sometimes as examples whose more fully featured packages must be purchased.
When / Why would you use FrameMaker?
In the early days, WYSIWYG was the big motivation to use Framemaker. The alternatives were troff and TeX/LaTeX for traditional non-WYSIWYG word processing, Interleaf, etc. for WYSIWYG.
For many years the main alternatives at engineering companies for technical documentation were:
- FrameMaker (WYSIWYG)
- Microsoft Word (WYSIWYG)
- TeX/LaTeX (non-WYSIWYG to WYSIWYW (what you see is what you want))
- a variety of other DTP and word processing tools
Plus, more and more, tools that support HTML/XHTML/SGML, possibly via a WYSIWYG GUI or wiki-like markup language, are available.
Obviously, legacy - having a great deal of FrameMaker documentation that would be painful to convert - is a very good reason to use FrameMaker.
For many years the main reason to choose FrameMaker over Word was scalability. FrameMaker could handle documents thousands of pages long, whereas Word often struggled. For many years FrameMaker supported multifile books, whereas Word did not. The gap has narrowed, but not completely closed.
The main reason to use FrameMaker versus tools such as TeX/LaTeX was WYSIWYG. WYSIWYG does make certain operations easier, particularly for non-programmer technical writer users. Similarly, FrameMaker's WYSIWYG table editing and vector graphics drawing just worked, and were good enough, whereas drawing complicated diagrams in TeX/LaTeX usually involved external programs that were not ubiquitously available. Conversely, automatically generating complex diagrams using external tools is usually easier with TeX/LaTeX, and TeX/LaTeX are more susceptible to automation, have more advanced typesetting, etc., features, and more support for features used in academic documents, such as fancy footnotes and endnotes, and better automatic layout.
The main reason to use Framemaker versus tools other than Word and TeX/LaTeX has usually been ubiquity. This may be changing with the new generation off tools that use HTML/XHTML/XML/SGML as the interchange format, although it must be noted that tools used *ML often cannot exchange data easily - they may be using XML, but their XML DTDs can be very different. DITA may help.
Anecdote: I have observed the following pattern in many technical projects: Often the original documentation is written using markup language type tools such as wikis, with extensive automation, e.g. automatically extracting code examples from the documentation and running them. But once the project becomes a product, control of documentation is handed over to technical writers, and the original markup automation approach is abandoned for more techwriter friendly, WYSIWYG, documenation production tools - like FrameMaker in years past, now Word. End-Anecdote.
FrameMaker Features
Most FrameMaker features are relatively standard in word processing and desktop processing software, and will be mentioned only briefly if at all:
- Paragraph and Character Formats
- unlike Microsoft Word's, no inheritance
- Conditional Text
- Until recently, the conditional text tags could only be ORed. In recent FrameMaker versions more complicated logical expressions are available (e.g. display this text if and only if both Tag1 and tag2 are active)
- Multiple Page Layouts
- E.g. portrait pages for most text, landscape pages for wide tables and drawings
- E.g. different page backgrounds for reference material versus generic text
- E.g. multiple frames or flows, e.g. multiple columns. However, FrameMaker support is not as extensive in this area as that of specialized tools for laying out newsletters.
- Table Editing
- Conditional rows, but no conditional columns
- Reasonably good multipage tables
- No pivoting
- Drawing Editing (Vector Graphics)
- Footnotes and Cross References
- But not as much support for these as in TeX/LaTeX
- Reasonably powerful cross-reference formats
- Page Numbering
- Can create custom schemes for front matter and appendices: roman, chapter.page, etc
- UNIcode
- However, many legacy FrameMaker documents use pre-UNIcode symbol fonts,
causing conversion hassles. It is common to see diamonds instead of
math symbols in legac FrameMaker documents.