Adobe MIF Reference Frame Maker 2017 Fm Mifref

User Manual: adobe FrameMaker - 2017 - MIF Reference Free User Guide for Adobe FrameMaker Software, Manual

Open the PDF directly: View PDF PDF.
Page Count: 309

DownloadAdobe MIF Reference Frame Maker - 2017 Fm Mifref
Open PDF In BrowserView PDF
ADOBE® FRAMEMAKER® (2017 release)
MIF REFERENCE

© 2017 Adobe Systems Incorporated and its licensors. All rights reserved.
MIF Reference Online Manual
If this guide is distributed with software that includes an end-user agreement, this guide, as well as the software
described in it, is furnished under license and may be used or copied only in accordance with the terms of such license.
Except as permitted by any such license, no part of this guide may be reproduced, stored in a retrieval system, or
transmitted, in any form or by any means, electronic, mechanical, recording, or otherwise, without the prior written
permission of Adobe Systems Incorporated. Please note that the content in this guide is protected under copyright law
even if it is not distributed with software that includes an end-user license agreement.
The content of this guide is furnished for informational use only, is subject to change without notice, and should not be
construed as a commitment by Adobe Systems Incorporated. Adobe Systems Incorporated assumes no responsibility
or liability for any errors or inaccuracies that may appear in the informational content contained in this guide.
Please remember that existing artwork or images that you may want to include in your project may be protected under
copyright law. The unauthorized incorporation of such material into your new work could be a violation of the rights of
the copyright owner. Please be sure to obtain any permission required from the copyright owner.
Any references to company names in sample templates are for demonstration purposes only and are not intended to
refer to any actual organization.
Adobe, the Adobe logo, Acrobat, Distiller, Flash, FrameMaker, Illustrator, PageMaker, Photoshop, PostScript, Reader,
Garamond, Kozuka Mincho, Kozuka Gothic, MinionPro, and MyriadPro are trademarks of Adobe Systems Incorporated.
Microsoft, Windows, and Windows Vista are either registered trademarks or trademarks of Microsoft Corporation in the
United States and/or other countries. Solaris is a trademark or registered trademark of Sun Microsystems, Inc. in the
United States and other countries. UNIX is a trademark in the United States and other countries, licensed exclusively
through X/Open Company, Ltd. SVG is a trademark of the World Wide Web Consortium; marks of the W3C are
registered and held by its host institutions MIT, INRIA, and Keio. All other trademarks are the property of their respective
owners.
This product contains either BISAFE and/or TIPEM software by RSA Data Security, Inc.
This product contains color data and/or the Licensed Trademark of The Focoltone Colour System.
PANTONE® Colors displayed in the software application or in the user documentation may not match PANTONEidentified standards. Consult current PANTONE Color Publications for accurate color. PANTONE® and other Pantone, Inc.
trademarks are property of Pantone, Inc. © Pantone, Inc. 2003. Pantone, Inc. is the copyright owner of color data and/or
software which are licensed to Adobe Systems Incorporated to distribute for use only in combination with Adobe
Illustrator. PANTONE Color Data and/or Software shall not be copied onto another disk or into memory unless as part of
the execution of Adobe Illustrator software.
Software is produced under Dainippon Ink and Chemicals Inc.'s copyrights of color-data-base derived from Sample
Books.
This product contains ImageStream® Graphics and Presentation Filters Copyright ©1991-1996 Inso Corporation and/or
Outside In® Viewer Technology ©1992-1996 Inso Corporation. All Rights Reserved.
This product includes software developed by the Apache Software Foundation (http://www.apache.org/).
Certain Spelling portions of this product is based on Proximity Linguistic Technology. ©Copyright 1990 MerriamWebster Inc. ©Copyright 1990 All rights reserved. Proximity Technology A Division of Franklin Electronic Publishers, Inc.
Burlington, New Jersey USA. ©Copyright 2003 Franklin Electronic Publishers Inc.©Copyright 2003 All rights reserved.
Proximity Technology A Division of Franklin Electronic Publishers, Inc. Burlington, New Jersey USA. Legal Supplement
©Copyright 1990/1994 Merriam-Webster Inc./Franklin Electronic Publishers Inc. ©Copyright 1994 All rights reserved.
Proximity Technology A Division of Franklin Electronic Publishers, Inc. Burlington, New Jersey USA. ©Copyright 1990/
1994 Merriam- Webster Inc./Franklin Electronic Publishers Inc. ©Copyright 1997All rights reserved. Proximity
Technology A Division of Franklin Electronic Publishers, Inc. Burlington, New Jersey USA ©Copyright 1990 MerriamWebster Inc. ©Copyright 1993 All rights reserved. Proximity Technology A Division of Franklin Electronic Publishers, Inc.
Burlington, New Jersey USA. ©Copyright 2004 Franklin Electronic Publishers Inc. ©Copyright 2004 All rights reserved.

Proximity Technology A Division of Franklin Electronic Publishers, Inc. Burlington, New Jersey USA. ©Copyright 1991 Dr.
Lluis de Yzaguirre I Maura ©Copyright 1991 All rights reserved. Proximity Technology A Division of Franklin Electronic
Publishers, Inc. Burlington, New Jersey USA. ©Copyright 1990 Munksgaard International Publishers Ltd. ©Copyright
1990 All rights reserved. Proximity Technology A Division of Franklin Electronic Publishers, Inc. Burlington, New Jersey
USA. ©Copyright 1990 Van Dale Lexicografie bv ©Copyright 1990 All rights reserved. Proximity Technology A Division
of Franklin Electronic Publishers, Inc. Burlington, New Jersey USA. ©Copyright 1995 Van Dale Lexicografie bv
©Copyright 1996 All rights reserved. Proximity Technology A Division of Franklin Electronic Publishers, Inc. Burlington,
New Jersey USA. ©Copyright 1990 IDE a.s. ©Copyright 1990 All rights reserved. Proximity Technology A Division of
Franklin Electronic Publishers, Inc. Burlington, New Jersey USA. ©Copyright 1992 Hachette/Franklin Electronic
Publishers Inc. ©Copyright 2004 All rights reserved. Proximity Technology A Division of Franklin Electronic Publishers,
Inc. Burlington, New Jersey USA. ©Copyright 1991 Text & Satz Datentechnik ©Copyright 1991 All rights reserved.
Proximity Technology A Division of Franklin Electronic Publishers, Inc. Burlington, New Jersey USA. ©Copyright 2004
Bertelsmann Lexikon Verlag ©Copyright 2004 All rights reserved. Proximity Technology A Division of Franklin Electronic
Publishers, Inc. Burlington, New Jersey USA. ©Copyright 2004 MorphoLogic Inc. ©Copyright 2004 All rights reserved.
Proximity Technology A Division of Franklin Electronic Publishers, Inc. Burlington, New Jersey USA. ©Copyright 1990
William Collins Sons & Co. Ltd. ©Copyright 1990 All rights reserved. Proximity Technology A Division of Franklin
Electronic Publishers, Inc. Burlington, New Jersey USA. ©Copyright 1993-95 Russicon Company Ltd. ©Copyright 1995
All rights reserved. Proximity Technology A Division of Franklin Electronic Publishers, Inc. Burlington, New Jersey USA.
©Copyright 2004 IDE a.s. ©Copyright 2004 All rights reserved. Proximity Technology A Division of Franklin Electronic
Publishers, Inc. Burlington, New Jersey USA. The Hyphenation portion of this product is based on Proximity Linguistic
Technology. ©Copyright 2003 Franklin Electronic Publishers Inc.©Copyright 2003 All rights reserved. Proximity
Technology A Division of Franklin Electronic Publishers, Inc. Burlington, New Jersey USA. ©Copyright 1984 William
Collins Sons & Co. Ltd. ©Copyright 1988 All rights reserved. Proximity Technology A Division of Franklin Electronic
Publishers, Inc. Burlington, New Jersey USA. ©Copyright 1990 Munksgaard International Publishers Ltd. ©Copyright
1990 All rights reserved. Proximity Technology A Division of Franklin Electronic Publishers, Inc. Burlington, New Jersey
USA. ©Copyright 1997 Van Dale Lexicografie bv ©Copyright 1997 All rights reserved. Proximity Technology A Division
of Franklin Electronic Publishers, Inc. Burlington, New Jersey USA. ©Copyright 1984 Editions Fernand Nathan
©Copyright 1989 All rights reserved. Proximity Technology A Division of Franklin Electronic Publishers, Inc. Burlington,
New Jersey USA. ©Copyright 1983 S Fischer Verlag ©Copyright 1997 All rights reserved. Proximity Technology A
Division of Franklin Electronic Publishers, Inc. Burlington, New Jersey USA. ©Copyright 1989 Zanichelli ©Copyright 1989
All rights reserved. Proximity Technology A Division of Franklin Electronic Publishers, Inc. Burlington, New Jersey USA.
©Copyright 1989 IDE a.s. ©Copyright 1989 All rights reserved. Proximity Technology A Division of Franklin Electronic
Publishers, Inc. Burlington, New Jersey USA. ©Copyright 1990 Espasa-Calpe ©Copyright 1990 All rights reserved.
Proximity Technology A Division of Franklin Electronic Publishers, Inc. Burlington, New Jersey USA. ©Copyright 1989
C.A. Stromberg AB. ©Copyright 1989 All rights reserved. Proximity Technology A Division of Franklin Electronic
Publishers, Inc. Burlington, New Jersey USA.
Portions of Adobe Acrobat include technology used under license from Autonomy, and are copyrighted.
Adobe Systems Incorporated, 345 Park Avenue, San Jose, California 95110, USA.
Notice to U.S. government end users. The software and documentation are “Commercial Items,” as that term is defined
at 48 C.F.R. §2.101, consisting of “Commercial Computer Software” and “Commercial Computer Software
Documentation,” as such terms are used in 48 C.F.R. §12.212 or 48 C.F.R. §227.7202, as applicable. Consistent with 48
C.F.R. §12.212 or 48 C.F.R. §§227.7202-1 through 227.7202-4, as applicable, the Commercial Computer Software and
Commercial Computer Software Documentation are being licensed to U.S. Government end users (a) only as
Commercial items and (b) with only those rights as are granted to all other end users pursuant to the terms and
conditions herein. Unpublished-rights reserved under the copyright laws of the United States. For U.S. Government End
Users, Adobe agrees to comply with all applicable equal opportunity laws including, if appropriate, the provisions of
Executive Order 11246, as amended, Section 402 of the Vietnam Era Veterans Readjustment Assistance Act of 1974 (38
USC 4212), and Section 503 of the Rehabilitation Act of 1973, as amended, and the regulations at 41 CFR Parts 60-1
through 60-60, 60-250, and 60- 741. The affirmative action clause and regulations contained in the preceding sentence
shall be incorporated by reference.

5

Contents
Chapter 1: Introduction
Why use MIF? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Using this manual

......................................................................... 1

Style conventions

......................................................................... 2

Overview of MIF statements
MIF statement syntax

............................................................... 2

..................................................................... 4

Chapter 2: Using MIF Statements
Working with MIF files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Creating a simple MIF file for FrameMaker

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

Creating and applying character formats

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

Creating and formatting tables
Specifying page layout
Creating markers

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

Creating cross-references
Creating variables

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

Creating conditional text
Creating filters

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

Including template files

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

Setting View Only document options

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

Applications of MIF

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

Debugging MIF files

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

Other application tools

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

Where to go from here

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

Chapter 3: MIF Document Statements
MIF file layout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
MIFFile statement

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

Macro statements

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

Track edited text

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

Conditional text

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

Boolean expressions
Filter By Attribute

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

Paragraph formats

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

Character formats

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

Object styles

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

Line numbers

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

Tables

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

Color

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83

Variables

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

Cross-references

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

Global document properties

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87

6

Pages

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107

Mini TOC

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109

Graphic objects and graphic frames
Text flows

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129

Text insets (text imported by reference)

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137

Chapter 4: MIF Book File Statements
MIF book file overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
MIF book file identification line
Book statements

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145

Chapter 5: MIF Statements for Structured Documents and Books
Structural element definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
Attribute definitions
Format rules

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161

Format change lists
Elements

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173

Banner text

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176

Filter By Attribute

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176

XML data for structured documents

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177

Preference settings for structured documents
Text in structured documents
Structured book statements
MIF Messages

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185

Chapter 6: MIF Equation Statements
MathML statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
Document statement
Math statement

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192

MathFullForm statement

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193

Chapter 7: MIF Asian Text Processing Statements
Asian Character Encoding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212
Combined Fonts

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213

Kumihan Tables

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216

Rubi text

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226

Chapter 8: Examples
Text example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230
Bar chart example

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231

Pie chart example

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234

Custom dashed lines
Table examples

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237

Database publishing

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240

Chapter 9: MIF Messages
General form for MIF messages

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247

7

List of MIF messages

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247

Chapter 10: MIF Compatibility
Changes between version 12.0 and 2015 release

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250

Changes between version 11.0 and 12.0

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252

Changes between version 9.0 and 10.0

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253

MIF syntax changes in FrameMaker 8

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253

Changes between version 6.0 and 7.0

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254

Changes between version 5.5 and 6.0

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255

Changes between version 5 and 5.5

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256

Changes between versions 4 and 5

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258

Changes between versions 3 and 4

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261

Chapter 11: Facet Formats for Graphics
Facets for imported graphics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266
Basic facet format

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267

Graphic insets (UNIX versions)

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268

General rules for reading and writing facets

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273

Chapter 12: EPSI Facet Format
Specification of an EPSI facet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274
Example of an EPSI facet

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274

Chapter 13: FrameImage Facet Format
Specification of a FrameImage facet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276
Specification of FrameImage data

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276

Differences between monochrome and color
Sample unencoded FrameImage facet
Sample encoded FrameImage facet

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281

Chapter 14: FrameVector Facet Format
Specification of a FrameVector facet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283
Specification of FrameVector data
Sample FrameVector facet

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299

1

Chapter 1: Introduction
MIF (Maker Interchange Format) is a group of ASCII statements that create an easily parsed, readable text file of all
the text, graphics, formatting, and layout constructs that Adobe® FrameMaker® understands. Because MIF is an alternative representation of a FrameMaker document, it allows FrameMaker and other applications to exchange information while preserving graphics, document content, and format.

Why use MIF?
You can use MIF files to allow FrameMaker and other applications to exchange information. For example, you can
write programs to convert graphics and text MIF and then import the MIF file into FrameMaker with the graphics
and text intact. You can also save a FrameMaker document or book file as a MIF file and then write a program to
convert the MIF file to another format. These conversion programs are called filters; filters allow you to convert
FrameMaker document files into foreign files (files in another word processing or desktop publishing format), and
foreign files into FrameMaker document files.
You can use MIF files with database publishing applications, which allow you to capture changing data from
databases and format the data into high-quality documents containing both text and graphics information. You use
the database to enter, manipulate, sort, and select data. You use FrameMaker to format the resulting data. You use
MIF files as the data interchange format between the database and FrameMaker.
You can also use MIF files to do the following:

•
•
•

Share documents with earlier versions of FrameMaker
Perform custom document processing
Set options for online documents in View Only format

These tasks are described in “Applications of MIF” on page 47. You can use other FrameMaker to perform some of
these tasks. See “Other application tools” on page 51.

Using this manual
This manual:

•
•
•
•

Describes the layout of MIF files.
Provides a complete description of each MIF statement and its syntax.
Provides examples of how to use MIF statements.
Includes MIF statements for FrameMaker®.

To get the most from this manual you should be familiar with FrameMaker. For information about FrameMaker and
its features, see the documentation for your product. In addition, if you are using MIF as an interchange format
between FrameMaker and another application, you should be familiar with the tools needed to create and manipulate the other application, such as a programming language or database query language.
This chapter provides basic information about working with MIF files, including opening and saving MIF files in
FrameMaker. It goes on to provide detailed information about the MIF language and its syntax.

ADOBE FRAMEMAKER 2
MIF Reference

For an introduction to writing MIF files, read , “Using MIF Statements.” You can then use the statement index,
subject index, and table of contents to locate more specific information about a particular MIF statement.
For a description of a MIF statement, use the table of contents or statement index to locate the statement.
For a description of the differences between the MIF statements for this version of FrameMaker and earlier versions,
see , “MIF Compatibility.”

Style conventions
This manual uses different fonts to represent different types of information.

•

What you type is shown in

text like this.

•

MIF statement names, pathnames, and filenames are also shown in

text like this.

•

Placeholders (such as MIF data) are shown in

text like this.

•

For example, the statement description for PgfTag is shown as:



•

You replace tagstring with the tag of a paragraph format.

This manual also uses the term FrameMaker, (as in FrameMaker document, or FrameMaker session) to refer to
FrameMaker and to refer to structured or unstructured documents.

Overview of MIF statements
When you are learning about MIF statements, you may find it useful to understand how FrameMaker represents
documents.

How MIF statements represent documents
FrameMaker represents document components as objects. Different types of objects represent different components
in a FrameMaker document. For example, a paragraph is considered an object; a paragraph format is considered a
formatting object. The graphic objects that you create by using the Tools palette are yet another type of object.
Each object has properties that represent its characteristics. For example, a paragraph has properties that represent
its left indent, the space above it, and its default font. A rectangle has properties that represent its width, height, and
position on the page.
When FrameMaker creates a MIF file, it writes an ASCII statement for each object in the document or book. The
statement includes substatements for the object’s properties.
For example, suppose a document (with no text frame) contains a rectangle that is 2 inches wide and 1 inch high.
The rectangle is located 3 inches from the left side of the page and 1.5 inches from the top. MIF represents this
rectangle with the following statement:

>

# Type of graphic object
# Position and size: left offset, top offset,
# width, and height

ADOBE FRAMEMAKER 3
MIF Reference

FrameMaker also treats each document as an object and stores document preferences as properties of the document.
For example, a document’s page size and page numbering style are document properties.

FrameMaker documents have default objects
A FrameMaker document always has a certain set of default objects, formats, and preferences, even when you create
a new document. When you create a MIF file, you usually provide the objects and properties that your document
needs. However, if you don’t provide all the objects and properties required in a FrameMaker document, the MIF
interpreter fills in a set of default objects and document formats.
The MIF interpreter normally provides the following default objects:

•
•
•
•
•
•
•
•
•
•

Predefined paragraph formats for body text, headers, and table cells
Predefined character formats
A right master page for single-sided documents and left and right master pages for double-sided documents
A reference page
Predefined table formats
Predefined cross-reference formats
Default pen and fill values and dash patterns for graphics
Default colors
Default document preferences, such as ruler settings
Default condition tags

Although you can rely on the MIF interpreter to provide defaults, the exact properties and objects provided may vary
depending on your FrameMaker configuration. The MIF interpreter uses default objects and properties that are
specified in setup files and in templates. In UNIX® versions, these templates are ASCIITemplate and NewTemplate.
You can modify these default objects and document formats by creating your own version of ASCIITemplate or
NewTemplate or by modifying your setup files.
For more information about modifying the default templates and setup files, see the online manual Customizing
FrameMaker for UNIX versions of FrameMaker. For the and Windows® version, see the chapter on templates in your
user manual.

Current state and inheritance
FrameMaker has a MIF interpreter that reads and parses MIF files. When you open or import a MIF file, the interpreter reads the MIF statements and creates a FrameMaker document that contains the objects described in the MIF
file.
When the interpreter reads a MIF file, it keeps track of the current state of certain objects. If the interpreter reads an
object with properties that are not fully specified, it applies the current state to that object. When an object acquires
the current state, it inherits the properties stored in that state.
For example, if the line width is set to 1 point for a graphic object, the interpreter continues to use a 1-point line width
for graphic objects until a new value is specified in the MIF file. Similarly, if the MIF file specifies a format for a
paragraph, the interpreter uses the same format until a new format is specified in the file.
The MIF interpreter keeps track of the following document objects and properties:

•
•
•
•

Units
Condition tag properties
Paragraph format properties
Character format properties

ADOBE FRAMEMAKER 4
MIF Reference

•
•
•
•
•
•
•
•
•
•

Page properties
Graphic frame properties
Text frame properties
Fill pattern
Pen pattern
Line width
Line cap
Line style (dash or solid)
Color
Text line alignment and character format

Because the interpreter also provides default objects for a document, the current state of an object may be determined by a default object. For example, if a document does not provide any paragraph formats, the interpreter
applies a set of default paragraph properties to the first paragraph. Subsequent paragraphs use the same properties
unless otherwise specified.

How FrameMaker identifies MIF files
A MIF file must be identified by a MIFFile or Book statement at the beginning of the file; otherwise FrameMaker
simply reads the file as a text file. All other statements are optional; that is, a valid MIF file can contain only the
MIFFile statement. Other document objects can be added as needed; FrameMaker provides a set of default objects
if a MIF file does not supply them.

MIF statement syntax
The statement descriptions in this manual use the following conventions to describe syntax:


token data where token represents one of the MIF statement names (such as Pgf) listed in the MIF statement
descriptions later in this manual, and data represents one or more numbers, a string, a token, or nested statements.

Markup statements are always delimited by angle brackets (<>); macro statements are not. For the syntax of macro
statements, see “Macro statements” on page 55.
A token is an indivisible group of characters that identify a reserved word in a MIF statement. Tokens in MIF are
case-sensitive. A token cannot contain white space characters, such as spaces, tabs, or newlines. For example, the
following MIF statement is invalid because the token contains white space characters: 
When the MIF interpreter finds white space characters that aren’t part of the text of the document (as in the example
MIF statement, < Units Uin >), it interprets the white space as token delimiters. When parsing the example
statement, the MIF interpreter ignores the white space characters between the left angle bracket (<) and the first
character of the token, Units. After reading the token, the MIF interpreter checks its validity. If the token is valid,
the interpreter reads and parses the data portion of the statement. If the token is not valid, the interpreter ignores all
text up to the corresponding right angle bracket (>), including any nested substatements. The interpreter then scans
the file for the next left angle bracket that marks the beginning of the next MIF statement.
All statements, as well as all data portions of a statement, are optional. If you do not provide a data portion, the MIF
interpreter assigns a default value to the statement.

ADOBE FRAMEMAKER 5
MIF Reference

Statement hierarchy
Some MIF statements can contain other statements. The contained statements are called substatements. In this
manual, substatements are usually shown indented within the containing statements as follows:

>

The indentation is not required in a MIF file, although it may make the file easier for you to read.
A MIF main statement appears at the top level of a file. A main statement cannot be nested within other statements.
Some substatements can only appear within certain main statements.
The statement descriptions in this manual indicate the valid locations for a substatement by including it in all of the
valid main statements. Main statements are identified in the statement description; for the correct order of main
statements, see “MIF file layout” on page 52.

MIF data items
There are several general types of data items in a MIF statement. This manual uses the following terms and symbols
to identify data items.
This term or symbol

Means

string

Left quotation mark ( ` ), zero or more standard ASCII characters (you can also include UTF-8 characters), and a straight quotation mark ( ' ).
Example: `ab cdef ghij'

tagstring

A string that names a format tag, such as a paragraph format tag. A tagstring value must be
unique; case is significant. A statement that refers to a tagstring must exactly match the
tagstring value. A tagstring value can include any character from the FrameMaker character set.

pathname

A string specifying a pathname (see “Device-independent pathnames” on page 7).

boolean

A value of either Yes or No. Case is significant.

integer

Integer whose range depends on the associated statement name.

ID

Integer that specifies a unique ID. An ID can be any positive integer between 1 and 65535, inclusive. A statement that refers to an ID must exactly match the ID.

dimension

Decimal number signifying a dimension. You can specify the units, such as 1.11", 72 pt, and
8.3 cm. If no units are specified, the default unit is used.

degrees

A decimal number signifying an angle value in degrees. You cannot specify units; any number is
interpreted as a degree value.

percentage

A decimal number signifying a percentage value. You cannot specify units; any number is interpreted as a percentage value.

metric

A dimension specified in units that represent points, where one point is 1/72 inch (see “Math
values” on page 6). Only used in MathFullForm statements.

W H

Pair of dimensions representing width and height. You can specify the units.

X Y

Coordinates of a point. Coordinates originate at the upper-left corner of the page or graphic frame.
You can specify the units.

L T R B

Coordinates representing left, top, right, and bottom indents. You can specify the units.

L T W H

Coordinates representing the left and top indents plus the dimensions representing the width and
height of an object. You can specify the units.

ADOBE FRAMEMAKER 6
MIF Reference

This term or symbol

Means

X Y W H

Coordinates of a point on the physical screen represented by X and Y plus dimensions describing
the width and height. Used only by the DWindowRect and DViewRect statements within the
Document statement and the BWindowRect statement within the Book statement. The
values are in pixels; you cannot specify the units.

keyword

A token value. The allowed token values are listed for each statement; you can provide only one
value.



Ellipsis points in a statement indicate required substatements or arguments. The entire expanded
statement occurs at this point.

Unit values
You can specify the unit of measurement for most dimension data items. The following table lists the units of
measurement that FrameMaker supports and their notation in MIF.
Measurement unit

Notation in MIF

Relationship to other units

point

pt or point

1/72 inch

inch

" or in

72 points

millimeter

mm or millimeter

1 inch is 25.4 mm

centimeter

cm or centimeter

1 inch is 2.54 cm

pica

pc or pica

12 points

didot

dd or didot

0.01483 inches

cicero

cc or cicero

12 didots

Dimension data types can mix different units of measurement. For example, the statement  can be written as either of the following:



Math values

The MathFullForm statement uses metric values in formatting codes. A metric unit represents one point (1/72
inch). The metric type is a 32-bit fixed-point number. The 16 most significant bits of a metric value represent the
digits before the decimal; the 16 least significant bits represent the digits after the decimal. Therefore, 1 point is
expressed as hexadecimal 0x10000 or decimal 65536. The following table shows how to convert metric values into
equivalent measurement units.
To get this unit

Divide the metric value by this number

point

65536

inch

4718592

millimeter

185771

centimeter

1857713

pica

786432

didot

6997

cicero

839724

ADOBE FRAMEMAKER 7
MIF Reference

Character set in strings
MIF string data uses the FrameMaker character set (see the Quick Reference for your FrameMaker product). MIF
strings must begin with a left quotation mark (ASCII character code 0x60) and end with a straight quotation mark
(ASCII character code 0x27). Within a string, you can include any character in the FrameMaker character set.
However, because a MIF file can contain only standard ASCII characters and because of MIF parsing requirements,
you must represent certain characters with backslash (\) sequences.
Character

Representation

Tab

\t

>

\>

'

\q

`

\Q

\

\\

nonstandard ASCII

\xnn

Note: The \xnn character is supported only for legacy MIF files.
All FrameMaker characters with values above the standard ASCII range (greater than \x7f) are represented in a
string by using \xnn notation, where nn represents the hexadecimal code for the character. The hexadecimal digits
must be followed by a space.
When using special characters in a variable definition, you can also use a hexadecimal notation or Unicode notation.
In the previous example, the hexadecimal notation for the paragraph symbol (¶) is \xa6. Alternatively, you can use
the \u00B6 Unicode notation to represent the same character.
The following example shows a FrameMaker document line and its representation in a MIF string.
In a FrameMaker document

In MIF

Some `symbols': > \Ø¿!

`Some \Qsymbols\q: \> \\Ø¿!'

You can also use the Char statement to include certain predefined special characters in a ParaLine statement (see
“Char statement” on page 133).

Device-independent pathnames
Several MIF statements require pathnames as values. You should supply a device-independent pathname so that files
can easily be transported across different system types. Because of MIF parsing requirements, you must use the
following syntax to supply a pathname:
`namenamename…'

where name is the name of a component in the file’s path and code identifies the role of the component in the path.
The following table lists codes and their meanings.
Code

Meaning

r

Root of UNIX file tree (UNIX only)

v

Volume or drive (Windows)

h

Host (Apollo only)

c

Component

ADOBE FRAMEMAKER 8
MIF Reference

Code

Meaning

u

Up one level in the file tree

When you specify a device-independent pathname in a MIF string, you must precede any right angle brackets (>)
with backslashes (\), as shown in the syntax above.
Absolute pathnames

An absolute pathname shows the location of a file beginning with the root directory, volume, or drive. The following
table specifies device-independent, absolute pathnames for the different versions of FrameMaker.
In this version

The pathname appears as this MIF string

UNIX

`MyDirectoryMySubdirectoryFilename'

Windows

`c:mydirsubdirfilename'

Relative pathnames

A relative pathname shows the location of a file relative to the current directory. In all FrameMaker versions, the
device-independent, relative pathname for the same file is:
`Filename'

9

Chapter 2: Using MIF Statements
MIF statements can completely describe any Adobe® FrameMaker® document, no matter how complex. As a result,
you often need many MIF statements to describe a document. To learn how to use MIF statements, it helps to begin
with some simple examples.
This chapter introduces you to MIF, beginning with a simple MIF example file with only a few lines of text.
Additional examples show how to add common document objects, such as paragraph formats, a table, and a custom
page layout, to this simple MIF file.
The examples in this chapter are also provided in online sample files. You can open these examples in FrameMaker
and experiment with them by adding additional MIF statements. Look for the sample files in the following location:
In this version

Look here

UNIX

$FMHOME/fminit/language/Samples/MIF, where language is the language in use, such as
usenglish

Windows

The MIF directory under the samples directory

Working with MIF files
A MIF file is an alternate representation of a FrameMaker document in ASCII format. MIF files are usually generated
by FrameMaker or by an application that writes out MIF statements. You can, however, create MIF files by using a
text editor or by using FrameMaker as a text editor. This section provides some general information about working
with MIF files regardless of the method you use to create them.

Opening and saving MIF files
When you save a FrameMaker document, you usually save it in Normal format, FrameMaker’s binary format for
document files. To save a document as a MIF file, choose Save As from the File menu. In the Save Document dialog
box, choose Interchange (MIF) from the Format pop-up menu. You should give the saved file the suffix .mif to
distinguish it from a file saved in binary format.
When you open or import a MIF file, FrameMaker reads the file directly, translating it into a FrameMaker document
or book. When you save the document in Normal format, FrameMaker creates a binary document file. To prevent
overwriting the original MIF file, remove the .mif file suffix and replace it with a different suffix (or no suffix).
If you use FrameMaker to edit a MIF file, you must prevent it from interpreting MIF statements when you open the
file by holding down a modifier key and clicking Open in the Open dialog box.
In this version

Use this modifier key

UNIX

Shift

Windows

Control or Shift

Save the edited MIF file as a text file by using the Save As command and choosing Text Only from the Format popup menu. Give the saved file the suffix .mif. When you save a document as Text Only, FrameMaker asks you where
to place carriage returns. For a MIF file, choose the Only between Paragraphs option.

ADOBE FRAMEMAKER 10
MIF Reference

In UNIX versions, FrameMaker saves a document in text format in the ISO Latin-1 character encoding. You can
change the character encoding to ASCII by changing the value of an X resource. See the description of character
encoding in the online manual Customizing FrameMaker. In the Windows version, press Esc F t c to toggle between
FrameMaker’s character encoding and ANSI for Windows.

Importing MIF files
You can use the File menu’s Import>File command to import MIF files into an existing document, but you must
make sure that the imported statements are valid at the location where you are importing them. A MIF file can
describe both text and graphics; make sure that you have selected either a place in the text flow (if you are importing
text or graphics) or an anchored frame (if you are importing graphics).
For example, to import a MIF file that describes a graphic, first create an anchored frame in a document, select the
frame, and then import the MIF file (see “Bar chart example” on page 231).
When you import or include MIF files, make sure that object IDs are unique in the final document and that references to object IDs are correct (see “Generic object statements” on page 111). The object IDs must be unique for all
objects (TextRect, TblId, Group, and AFrame use the ID for identification) in the document.

Editing MIF files
You normally use a text editor to edit a MIF file. If you use FrameMaker to enter text into a MIF file, be sure to open
the MIF file as a text file and turn off Smart Quotes. If you leave Smart Quotes on, you must use a key sequence to
type the quotation marks that enclose a MIF string (`'). To enter a left quotation mark, type Control-`. To enter a
straight quotation mark, type Control-'.
Although MIF statements are usually generated by a program, while you learn MIF or test and debug an application
that generates MIF, you may need to manually generate MIF statements. In either case, you can minimize the
number of MIF statements that your application needs to generate or that you need to type in.
The following suggestions may be helpful when you are working with MIF statements:

•
•

Edit a MIF file generated by FrameMaker.

•
•

Test one object at a time.

•
•

Use the default properties provided by FrameMaker.

You can edit a MIF file generated by FrameMaker or copy a group of statements from a MIF file into your file
and then edit the statements. An easy way to use FrameMaker to generate a MIF file is to create an empty
document by using the New command and then saving it as a MIF file.
While testing an object in a document or learning about the MIF statements that describe an object, work with
just that object. For example, if you work with a document that contains both tables and anchored frames, start
by creating the MIF statements that describe tables. Then add the statements that describe anchored frames.
If you are not concerned with testing certain document components, let FrameMaker provide a set of default
document objects and formats.

MIF file layout
FrameMaker writes the objects in a MIF document file in the following order:
This section

Contains these objects

File ID

MIF file identification line (MIFFile statement)

Units

Default units (Units statement)

ADOBE FRAMEMAKER 11
MIF Reference

This section

Contains these objects

Catalogs

Color
Condition
Paragraph Format
Element
Font or Character Format
Ruling
Table Format
Views

Formats

Variable
Cross-reference

Objects

Document
Dictionary
Anchored frames
Tables
Pages
Text flows

FrameMaker provides all of these objects, even if the object is empty. To avoid unpredictable results in a document,
you must follow this order when you create a MIF file.

Creating a simple MIF file for FrameMaker
Note: The rest of this chapter explains how to create some simple MIF files for FrameMaker by hand. These instructions
do not apply to structured documents, which require that you create elements first.
The most accurate source of information about MIF files is a MIF file generated by FrameMaker. MIF files generated
by FrameMaker can be very lengthy because FrameMaker repeats information and provides default objects and
formats for all documents. You may find it difficult to determine the minimum number of statements that are
necessary to define your document by looking at a FrameMaker-generated MIF file.
To better understand how FrameMaker reads MIF files, study the following example. This MIF file uses only four
statements to describe a document that contains one line of text:

# The only required statement
# The actual text of this document
>
# end of Paraline #End of ParaLine statement
>
# end of Para #End of Para statement

The MIFFile statement is required in each MIF file. It identifies the FrameMaker version and must appear on the
first line of the file. All other statements are optional; that is, FrameMaker provides a set of default objects if you
specify none.
Comments in a MIF file are preceded by a number sign (#). By convention, the substatements in a MIF statement
are indented to show their nesting level and to make the file easier to read. The MIF interpreter ignores spaces at the
beginning of a line.

ADOBE FRAMEMAKER 12
MIF Reference

This example is in the sample file hello.mif. To see how FrameMaker provides defaults for a document, open this
file in FrameMaker. Even though the MIF file does not specify any formatting, FrameMaker provides a default
Paragraph Catalog and Character Catalog. In addition, it provides a right master page, as well as many other default
properties.
Save this document as a MIF file and open the FrameMaker-generated MIF file in a text editor or in FrameMaker as
a text file. (For information on how to save and open MIF files, see “Opening and saving MIF files” on page 9.)
You’ll see that the MIF interpreter has taken the original 6-line file and generated over 1,000 lines of MIF statements
that describe all the default objects and their properties. To see the actual text of the document, go to the end of the
file.
This example demonstrates an important point about MIF files. Your MIF file can be very sparse; the MIF interpreter
supplies missing information. Most documents are not this simple, however, and require some formatting. The
following sections describe how to add additional document components, such as paragraph and character formats,
a table, and custom page layouts, to this minimal MIF file.

Creating and applying paragraph formats
In a FrameMaker document, paragraphs have formatting properties that specify the appearance of the paragraph’s
text. A paragraph format includes the font family and size, indents, tab stops, the space between lines in a paragraph,
the space before and after a paragraph, and the direction of the text. The text direction can be either left to right for
languages like English and German, or right to left for languages like Arabic and Hebrew. In a FrameMaker
document, the end of a paragraph is denoted by a single carriage return. You control the amount of space above and
below the paragraph by modifying the paragraph’s format, not by adding extra carriage returns.
In a FrameMaker document, you store paragraph formats in a Paragraph Catalog and assign a tag (name) to the
format. You can then apply the same format to many paragraphs by assigning the format tag to the paragraphs. You
can also format a paragraph individually, without storing the format in the Paragraph Catalog. Or, you can assign a
format from the Paragraph Catalog and then override some of the properties within a particular paragraph. Formats
that are not stored in the Paragraph Catalog are called local formats.

Creating a paragraph
In a MIF file, paragraphs are defined by a Para statement. A Para statement contains one or more ParaLine statements that contain the lines in a paragraph; the actual text of the line is enclosed in one or more String statements:
# The actual text of this document
>
# End of ParaLine statement
>
# End of Para statement

The Para, ParaLine, and String statements are the only required statements to import text. You could use this
example to import a simple document into FrameMaker by placing each paragraph in a Para statement. Break the
paragraph text into a series of String statements contained in one ParaLine statement. It doesn’t matter how you
break up text lines within a Para statement; the MIF interpreter automatically wraps lines when it reads the MIF file.
Some characters must be represented by backslash sequences in a MIF string. For more information, see “Character
set in strings” on page 7.

Creating a paragraph format
Within a FrameMaker document, you define a paragraph format by using the Paragraph Designer to specify the
paragraph’s properties. In a MIF file, you define a paragraph format by using the Pgf statement.

ADOBE FRAMEMAKER 13
MIF Reference

The Pgf statement contains a group of substatements that describe all of a paragraph’s properties. It has the following
syntax:


...
>

A Pgf statement is quite long, so learning how to relate its substatements to the paragraph’s properties may take some
practice. Usually a MIF statement name is similar to the name of the setting within a dialog box. The following
examples show the property dialog boxes from the Paragraph Designer with the related Pgf substatements.
Suppose you have created a paragraph format for a numbered list item with Basic properties defined as follows in
the Paragraph Designer.

Basic properties

The following table shows the corresponding MIF statements:
In MIF file

In Paragraph Designer



Paragraph Tag



First Indent



Left Indent



Right Indent



Alignment


0.0 pt>



Space Below ¶
Line Spacing (leading is added to font size)

ADOBE FRAMEMAKER 14
MIF Reference

In MIF file

In Paragraph Designer



Line Spacing (fixed)



Number of tab stops



Tab position



Tab type



Tab leader (none)

> # end of TabStop


Turn off Next ¶ Tag feature



Next ¶ Tag name (none)

The Default Font properties are defined as follows in the Paragraph Designer.

Font properties

The following table shows the corresponding MIF statements:
In MIF file

In Paragraph Designer



Family



Size




Angle

ADOBE FRAMEMAKER 15
MIF Reference

In MIF file

In Paragraph Designer



Weight



Language



Variation



Color



Spread



Stretch



Underline



Overline



Strikethrough



Change Bar



Superscript/Subscript



Capitalization



Pair Kern



Tsume (Asian systems only)

> # end of PgfFont

The Pagination properties are defined as follows in the Paragraph Designer.

Pagination properties

ADOBE FRAMEMAKER 16
MIF Reference

The following table shows the corresponding MIF statements:
In MIF file

In Paragraph Designer



Start



Keep With Next Pgf



Keep With Previous Pgf



Widow/Orphan Lines



Format (paragraph placement)



The Numbering properties are defined as follows in the Paragraph Designer.

Numbering properties

The following table shows the corresponding MIF statements:
In MIF file

In Paragraph Designer



Turn on Autonumber

.\\t' >

Autonumber Format (a number followed by a period and a tab)



Character Format (Default ¶ Format)



Position (Start of Paragraph)

ADOBE FRAMEMAKER 17
MIF Reference

The Advanced properties are defined as follows in the Paragraph Designer.

Advanced properties

The following table shows the corresponding MIF statements:
In MIF file

In Paragraph Designer



Automatic Hyphenation (on)



Shortest Word

5>



Shortest Prefix



Shortest Suffix



Minimum Word Spacing



Optimum Word Spacing



Maximum Word Spacing



Allow Automatic Letter Spacing



Frame Above ¶



Frame Below ¶

ADOBE FRAMEMAKER 18
MIF Reference

The Asian properties are defined as follows in the Paragraph Designer.

Asian properties

The following table shows the corresponding MIF statements:
In MIF file

In Paragraph Designer



Minimum (Western/Asian Spacing)



Optimum (Western/Asian Spacing)



Maximum (Western/Asian Spacing)



Minimum (Asian Character Spacing)



Optimum (Asian Character Spacing)



Maximum (Asian Character Spacing)



Asian Punctuation

ADOBE FRAMEMAKER 19
MIF Reference

The Table Cell properties are defined as follows in the Paragraph Designer.

Table cell properties

The following table shows the corresponding MIF statements:
In MIF file

In Paragraph Designer



Cell Vertical Alignment



Cell Margins



Top



Bottom



Left



Right

ADOBE FRAMEMAKER 20
MIF Reference

The Direction properties are defined as follows in the Paragraph Designer.

Direction properties

The following table shows the corresponding MIF statements:
In MIF file



In Paragraph Designer
Direction of the paragraph text

> # end of Pgf

Adding a Paragraph Catalog
In a MIF file, you define a Paragraph Catalog by using a PgfCatalog statement. The Paragraph Catalog contains one
or more paragraph formats, which are defined by Pgf statements. A PgfCatalog statement looks like this:


>

# A paragraph format description
# More paragraph formats
# end of PgfCatalog

The Pgf statement describes a complete paragraph format. For example, the sample file pgfcat.mif stores the
paragraph format 1Heading in the Paragraph Catalog:








...


# Hand generated

ADOBE FRAMEMAKER 21
MIF Reference



>
>

# end of Pgf
# end of PgfCatalog

If you open pgfcat.mif in FrameMaker, you’ll see that the Paragraph Catalog contains a single paragraph format
called 1Heading. If you supply a Paragraph Catalog, the paragraph formats in your catalog replace those in the
default catalog; they do not supplement the default formats.
If you do not supply a Paragraph Catalog in a MIF file, the MIF interpreter provides a default Paragraph Catalog with
predefined paragraph formats.
If a Pgf statement provides only the name of a paragraph format, the MIF interpreter supplies default values for the
rest of the paragraph properties when it reads in the MIF file.

Applying a paragraph format
To apply a format from the Paragraph Catalog to a paragraph, use the PgfTag statement to include the format tag
name within the Para statement. For example, to apply the previously defined format 1Heading to a paragraph, use
the following statements:


>
# end of ParaLine
>
# end of Para

To apply a format from the Paragraph Catalog and then locally override some properties, use a partial Pgf statement
within the Para statement. The following MIF example applies the paragraph format 1Heading, then changes the
alignment:


>
# end of Pgf

>
# end of ParaLine
>
# end of Para

To locally define a paragraph format, include a complete Pgf statement within the Para statement:






...
>
# end of Pgf

>
# end of ParaLine
>
# end of Para

For a complete description of Pgf property statements, see page 61.

ADOBE FRAMEMAKER 22
MIF Reference

How paragraphs inherit properties
Paragraphs can inherit properties from other paragraphs in a MIF file. If a Pgf statement does not provide values for
each paragraph property, it acquires any property values explicitly defined in a previous Pgf statement. Because the
MIF interpreter sequentially reads MIF files, it uses the most recently defined Pgf statement that occurs before the
current statement in the file.
For example, the following MIF code applies the default format named Body to the first paragraph in a document
and locally overrides the paragraph font:


>
# end of PgfFont
>
# end of Pgf

>
# end of ParaLine
>
# end of Para

>
# end of ParaLine
>
# end of Para

The previous example is in the sample file pgffmt.mif. If you open this file in FrameMaker, you’ll find that the
second paragraph also has the new font property.
A paragraph property remains in effect until the property value is changed by a subsequent MIF statement. To
change a paragraph property to another state, supply a Pgf statement containing the paragraph property statement
set to the new state.
Thus, in the previous example, you could change the font from Bold to Regular in a Pgf statement in the second Para
statement:

>
# end of PgfFont
>
# end of Pgf

>
# end of ParaLine
>
# end of Para

To summarize, paragraphs inherit formats as follows:

•
•
•

Formats in the Paragraph Catalog inherit properties from the formats above them.
Locally defined paragraph formats inherit properties from previously specified formats.
Text lines in anchored frames inherit font properties from previously specified formats, including the last format
in the Paragraph Catalog and previous text lines.

Tips
The following hints may help you minimize the MIF statements for paragraph formats:

•

If possible, use the formats in the default Paragraph Catalog (don’t supply a PgfCatalog statement). If you know
the names of the default paragraph formats, you can tag paragraphs with the PgfTag statement.

ADOBE FRAMEMAKER 23
MIF Reference

•

If you know that a document will use a particular template when it is imported into a FrameMaker document,
you can just tag the paragraphs in the text flow. Don’t create a new Paragraph Catalog in MIF; it’s easier to create
catalogs in FrameMaker document templates.

•

If you need to provide a full Paragraph Catalog in a MIF file, you can still use FrameMaker to ease the task of
creating a catalog. Create a template in FrameMaker, save the template as a MIF file, and include the Paragraph
Catalog in your document. For instructions, see “Including template files” on page 44.

Creating and applying character formats
You can define character formats locally or store them in the Character Catalog and apply the formats to text selections. Creating and applying character formats is very similar to creating and applying paragraph formats as
described in the previous section. Because the two methods are similar, this section just summarizes how to create
and apply character formats.
In a MIF file, the Character Catalog is contained in a FontCatalog statement. The FontCatalog statement contains
named character formats in a list of Font statements. A FontCatalog statement looks like this:


>

# Describes a character format
# Describes a character format
# end of FontCatalog

A Font statement specifies the properties of a character format; these are the same properties specified in the
Character Designer. The Font statement is just like the PgfFont statement that you use to define the default font in
a paragraph format. See “PgfFont and Font statements” on page 66 for a complete description of a Font statement.
To apply a predefined character format to text, use the FTag statement:

# Hand generated


>
# end of Font
>
# end of FontCatalog



>
# end of Font


>
# end of Font

>
# end of ParaLine
>
# end of Para

Remember to include a second Font statement to end the scope of the applied character format.
To locally define a character format, use a complete Font statement:




…character property statements…

>
>

>
# end of Font


>
# end of Font

# end of ParaLine
# end of Para

Like paragraph formats, character formats inherit properties from previously defined character formats. Unlike
paragraph formats, however, a character format ends at the close of a Para statement.
See the sample file charfmt.mif for examples of using character formats.

Creating and formatting tables
You can create tables in FrameMaker documents, edit them, and apply table formats to them. Tables can have
heading rows, body rows, and footing rows. Each row consists of table cells that contain the actual contents of the
table.

Table 1: Coffee Inventory

Title

Coffee

Bags

Status

Price per bag

Brazil Santos

50

Prompt

$455.00

Celebes Kalossi

29

In Stock

$924.00

Colombian

25

In Stock

$474.35

$1,853.35

Heading row

Body rows

Footing row

Tables are like paragraphs in that they have a format. A table format controls the appearance of a table, including the
number and width of columns, the types of ruling or shading in rows and columns, and the table’s position in a text
column. Table formats can be named, stored in a Table Catalog, and applied to many tables. A table format can also
be defined locally.
In a FrameMaker document, tables appear where they have been placed in the text flow. A table behaves like an
anchored frame, so a table flows with the surrounding text unless you give it a specific location. In a MIF file, the
document’s tables are collected in one place and a placeholder for each table indicates the table’s position in the text
flow.
You create a table in a MIF file as follows:

•

Specify the contents of the table by using a Tbl statement. An individual table is called a table instance. All table
instances are stored in one Tbls statement. Assign each table instance a unique ID number.

•

Indicate the position of the table in the text flow by using an ATbl statement. The ATbl statement is the placeholder, or anchor, for the table instance. It refers to the table instance’s unique ID.

•

Specify the table format by using a TblFormat statement. Formats can be named and stored in the Table Catalog,
which is defined by a TblCatalog statement, or locally defined within a table.

ADOBE FRAMEMAKER 25
MIF Reference

Creating a table instance
All table instances in a document are contained in a Tbls statement. The Tbls statement contains a list of Tbl statements, one for each table instance. A document can have only one Tbls statement, which must occur before any of
the table anchors in the text flow.
The Tbl statement contains the actual contents of the table cells in a list of MIF substatements. Like other MIF statements, this list can be quite long. The following is a template for a Tbl statement:





>

>

>
>

#
#
#
#
#
#
#
#
#
#
#
#
#
#
#

A unique ID for the table
The table format
Number of columns in this table--required
Column width, one for each column
The heading; omit if no heading
One Row statement for each row
One statement for each cell in the row
end of Row
The body of the table
One for each row in body
end of TblBody
The footer; omit if no footer
One for each row in footer
end of TblF
end of Tbl

The TblID statement assigns a unique ID to the table instance. The TblFormat statement provides the table format.
You can use the TblFormat statement to apply a table format from the Table Catalog, apply a format from the catalog
and override some of its properties, or completely specify the table format locally. Because the tables in a document
often share similar characteristics, you usually store table formats in the Table Catalog. Table instances can always
override the applied format.
The TblNumColumns statement specifies the number of columns in the table instance. It is required in every table.
The TblH, TblBody, and TblF statements contain the table heading, body, and footer rows. If a table does not have
a heading or footing, omit the statements.
Here’s an example of a simple table that uses a default format from the Table Catalog. The table has one heading row,
one body row, and no footing rows:

Coffee

Price per Bag

Brazil Santos

$455.00

You can use the following MIF statements to create this simple table:


# ID for this table

# Applies format from Table Catalog

# Number of columns in this table

# Width of first column

# Width of second column
# Applies format from Paragraph Catalog
# Text in this cell
>
>
>

>
>

#
#
#
#

end of
end of
end of
Second

Para
CellContent
Cell
cell in row

>


>
>
# end of Para
>
# end of CellContent
>
# end of Cell
>
# end of Row
>
# end of TblH


>
>
# end of Para
>
# end of CellContent
>
# end of Cell


>
>
# end of Para
>
# end of CellContent
>
# end of Cell
>
# end of Row
>
# end of TblBody
# end of Tbl
# end of Tbls

A table cell is a text column that contains an untagged text flow not connected to any other flows. You can put any
kind of text or graphics in a table cell. The cell automatically grows vertically to accommodate the inserted text or
graphic; however, the width of the column remains fixed.

Adding a table anchor
To indicate the position of a table in the text flow, you must add an ATbl statement. The ATbl statement refers to the
unique ID specified by the TblID statement in the table instance. For example, to insert the table defined in the
previous example, you would add the following statements to the minimal MIF file:


# Matches table ID in Tbl statement
>
# end of ParaLine
>
# end of Para

ADOBE FRAMEMAKER 27
MIF Reference

This example is in the sample file table.mif. If you open this file in FrameMaker, you’ll see that the anchor symbol
for the table appears at the end of the sentence. To place the table anchor between two words in the sentence, use the
following statements:



>
>

# end of ParaLine
# end of Para

Note that the ATbl statement appears outside the String statement. A ParaLine statement usually consists of
String statements that contain text interspersed with statements for table anchors, frame anchors, markers, and
cross-references.
About ID numbers

The table ID used by the ATbl statement must exactly match the ID given by the TblID statement. If it does not, the
MIF interpreter ignores the ATbl statement and the table instance does not appear in the document. You cannot use
multiple ATbl statements that refer to the same table ID.
An ID can be any positive integer from 1 to 65535, inclusive. The only other statements that require an ID are AFrame
statements, linked TextRect statements, and Group statements. For more information about these statements, see
“Graphic objects and graphic frames” on page 110.
Rotated cells

Coffee

Price

A table can have rotated cells and straddle cells. The following table includes rotated cells in the heading row:

Brazil Santos

$455.00

In a MIF file, a cell that is rotated simply includes a CellAngle statement that specifies the angle of rotation:


>

# end of Cell

Cells can only be rotated by 90, 180, or 270 degrees. Cells are rotated clockwise.
Straddle cells

The contents of a straddle cell cross cell borders as if there were a single cell. You can straddle cells horizontally or
vertically. The following table includes a heading row that straddles two columns:

Brazilian Coffee
Coffee

Price per Bag

Brazil Santos

$455.00

ADOBE FRAMEMAKER 28
MIF Reference

The MIF code for the straddle cell includes a CellColumns statement that specifies the number of columns that the
cell crosses. The contents of the straddle cell appear in the first of the straddle columns; the subsequent Cell statements for the row must appear even if they are empty.

# Number of straddle columns.


>
>
# end of Para
>
# end of CellContent
>
# end of Cell


>
# end of Para
>
# end of CellContent
>
# end of Cell
>
# end of Row

If the cell straddles rows, the substatement is CellRows.

Creating a table format
A table format includes the following properties:

•
•

The properties specified by the Table Designer

•
•
•

The number and widths of columns

These include the row and column ruling and shading styles, the position of text within cell margins, the table’s
placement within the text column, and the table title position.
The paragraph format of the first paragraph in the title (if there is one)
The paragraph format of the topmost paragraph in the heading, body, and footing cell of each column

For example, you could change the format of the previous table to include shaded rows and a different ruling style:

Coffee

Price per Bag

Brazil Santos

$455.00

Celebes Kalossi

$924.00

Colombian

$474.35

The following MIF statements define this table format:

# Every table must have at least one TblColumn
# statement.



# Columns are numbered from 0.
# Width of first column.

ADOBE FRAMEMAKER 29
MIF Reference

>

>
# end of TblColumn

# Second column.

# Width of second column.
>
# end of TblColumn


# These are exactly like paragraph

# format properties.






# No fill for heading row.


# Use 10% gray fill for main body rows.


# Shade by row, not by column.

# Shade every other row.

# No fill for alternate rows.

# Color for alternate rows.


# Use thin left outside rule.

# Use thin bottom outside rule.

# Use thin right outside rule.

# Use medium top outside rule.

# Use thin rules between columns.


# Use thin rules between rows.


# No rules between heading rows.

# Use medium rule after heading row.




# Place title above table.

# paragraph in title.
>
# end of TblTitlePgf1

# Gap between title and table.

# Initial number of rows and

# columns for new tables with

# this format.


# end of TblFormat

The TblColumn statement numbers each column and sets its width. A table can have more columns than TblColumn
statements; if a column does not have a specified format, the MIF interpreter uses the format of the most recently
defined column.
Note: A table instance must have at least one TblColumn statement. A table can use a format from the Table Catalog
that includes a TblColumn statement or it can include a local TblFormat statement that supplies the TblColumn
statement.

Adding a Table Catalog
You can store table formats in a Table Catalog by using a TblCatalog statement. A document can have only one
TblCatalog statement, which must occur before the Tbls statement.

ADOBE FRAMEMAKER 30
MIF Reference

The TblCatalog statement contains one TblFormat statement for each format, as shown in the following template:


>
# end of TblCatalog

As with the Paragraph Catalog, if your MIF file does not provide a Table Catalog, the MIF interpreter supplies a
default catalog and formats. If you do provide a Table Catalog, your defined table formats supersede those in the
default Table Catalog.
You can add a minimal table format to the catalog by simply supplying a table format tag name. The MIF interpreter
supplies a set of default values to the table’s properties when it reads in the MIF file.
The ruling styles in a table format are defined in a separate catalog called the Ruling Catalog. You can define your
own Ruling Catalog with the RulingCatalog statement. Whether you use the default ruling styles or create your
own, substatements that refer to ruling styles, such as the TblLRuling statement, must use the name of a ruling
style from the Ruling Catalog. See “RulingCatalog statement” on page 82.

Applying a table format
You can apply a table format from the Table Catalog or you can define a table format locally.
To apply a table format from the Table Catalog, use the TblTag statement within the Tbl statement:




>
>

# Tag of format in Table Catalog

# end of TblBody
# end of Tbl
# end of Tbls

To locally define a table format, use a complete TblFormat statement:


# Every table must have one TblColumn statement.


>
…table property statements…
>
>
>

# end of TblColumn
# end of TblFormat
# end of Tbl
# end of Tbls

Creating default paragraph formats for new tables
You can use the TblFormat and TblColumn statements to define default paragraph formats for the columns in new
tables. These default formats do not affect tables that are defined within the MIF file; they only affect tables that the
user inserts after the MIF file has been opened in FrameMaker. Your filter or application should provide these
defaults only for documents that might be edited later.
For example, the following MIF code assigns a paragraph format named Description to body cells in new tables that
are given the format called Coffee Table:

ADOBE FRAMEMAKER 31
MIF Reference





>
# end of TblColumnBody
>
# end of TblColumn
>
# end of TblFormat

Tables inherit properties differently
Tables inherit formatting properties somewhat differently than other document components. A table without an
applied table format does not inherit one from a previously defined table. Instead, it gets a set of default properties
from the MIF interpreter. Thus, if you apply a named format to a table, a following table will not inherit that format.
Paragraphs in table cells still inherit properties from previously defined paragraph formats. If you give a table cell a
certain paragraph style, all subsequent cells inherit the same property unless it is explicitly reset. Table cells can
inherit paragraph properties from any previously specified paragraph format, including other tables, paragraphs, or
even the Paragraph Format catalog.

Tips
To avoid problems when creating tables:

•
•
•

Give each table a unique ID number.
Make sure that each Tbl statement has only one corresponding ATbl statement, and that each ATbl statement
has a corresponding Tbl statement.
Make sure that each ATbl statement matches the ID of its corresponding table instance.

Specifying page layout
FrameMaker documents have two kinds of pages that determine the position and appearance of text in the
document: body pages and master pages.
Body pages contain the text and graphics that form the content of the document. Master pages control the layout of
body pages. Each body page is associated with one master page, which specifies the number, size, and placement of
the page’s text frames and the page background, such as headers, footers, and graphics.
Untagged
background text
frame

On body pages, you type in a
column of a tagged text frame.

Tagged template
text frame

Untagged
background text
frame
Master page

Body page

ADOBE FRAMEMAKER 32
MIF Reference

Text frames define the layout of the document’s text on a page. A text frame can arrange text in one or more columns.
In MIF, a text frame is represented by a TextRect statement. The dimensions of the text frame and the number of
columns in the text frame are specified by substatements under the TextRect statement.
A text flow describes the text contained in one or more text frames. In MIF, a text flow is represented by a TextFlow
statement. The actual text of the document is specified by substatements under the TextFlow statement.
If the text flow has the autoconnect property (if the text flow uses the MIF statement ), the
text flow runs through a series of text frames; when you fill up one text frame, text continues into the next text frame.
Most documents have only one text flow, although you can create many separate flows.
FrameMaker provides a default right master page for single-sided documents and default right and left master pages
for double-sided documents. A MIF file can either use the default page layout or provide a custom layout.

Using the default layout
If you don’t need to control the page layout of a document, you can use the default page layout by putting all of the
document’s text into a TextFlow statement. When reading the file, the MIF interpreter creates default master pages
and body pages. The MIF file creates a single-column text frame for the body pages to contain the document’s text.
The MIF interpreter associates the text flow with this text frame.
The following example is in the sample file defpage.mif:

# Hand generated

# Make this a tagged text flow.

# Automatically connect text frames.


>
# end of ParaLine
>
# end of Para
>
# end of TextFlow
# End of MIFFile

A text flow must be tagged, and it must include ; otherwise, when the user adds text to the
document, FrameMaker won’t create additional pages and text frames to hold the added text.

Creating a simple page layout
If you want some control of the page layout but do not want to create master pages, you can use the Document
substatements DPageSize, DMargins, and DColumns to specify the page size, margins, and number of columns in
the text frame in the document. The MIF interpreter uses this information to create master pages and body pages.
These statements correspond to the Normal Page Layout options.
The following example is in the sample file columlay.mif:





>



>



>
# end of ParaLine
# end of Para
# end of TextFlow
# End of MIFFile

Creating a single-sided custom layout
If the document that you’re importing needs a custom master page, you must specify a custom page layout. For
example, a document might need a master page for background graphics.
To create a custom layout for a single-sided document, you do the following:

•
•
•
•

Create a right master page.
Create a single, empty body page.
Create an empty, tagged text flow that is linked to the master page.
Create a tagged text flow that is linked to the body page and contains all the document’s text.

The MIF code shown in this section is also in the sample file snglpage.mif.
To create the master page

To create a master page layout, use the Page statement to create the page and use the TextRect statement to create
the text frame.
To specify the number of text columns in the text frame, use the TRNumColumns statement. By default, if the text
frame’s specification does not include this statement, the text frame has only one column.
This example sets up a right master page with a text frame containing one text column:



>








>
>

# Hand generated
#
#
#
#

Set the document page size.
Make this a single-sided document.
end of Document
Create a right master page.

#
#
#
#
#
#
#
#
#

Set up a text frame.
Give the text frame a unique ID.
Set the pen style.
Set the fill pattern (none).
Specify the text frame size.
Specify number of text columns.
Specify gap between text columns.
end of TextRect
end of Page

The ID statement assigns a unique ID number to this text frame. You must give text frames a unique ID in a MIF file;
other objects that require unique IDs are anchored graphic frames and table instances.
To create an empty body page

To create the body page, use the Page statement. Then use the TextRect statement to create a text frame with dimensions that are exactly the same as the text frame on the master page. Give the text frame a unique ID:




# This text frame has a unique ID.
# The body page dimensions match those of the
# master page.





# The column layout must also match.

>

# end TextRect
# end Page

>

If the dimensions (specified by the ShapeRect statement) and column layout (specified by the TRNumColumns and
TRColumnGap statements) of the master page and body page do not match, the body page will not use the page layout
from the master page. Instead, the body page will use the page layout defined for the body page.
To create the text flow for the master page

The text flow for the master page is not contained in the Page statement; instead, it is contained in a TextFlow
statement that is linked to the text frame on the master page. The Page statements must come before any TextFlow
statements.
Link the text flow to the master page’s text frame by using the TextRectID statement to refer to the text frame’s
unique ID:



>
>
>

# The text flow must be tagged.
# Autoconnect must be turned on.

#
#
#
#

Refers
end of
end of
end of

to text frame ID on master page.
ParaLine
Para
TextFlow

The text flow for the master page must be empty. Be sure to give the text flow the same flow tag that you give the text
flow for the body page and to turn on the autoconnect feature.
To create the text flow for the body page

The text flow for the body page is contained in a separate TextFlow statement that is linked to the body page’s text
frame. The text flow contains the actual text of the document in one or more Para statements. If text overflows the
first text frame, the MIF interpreter creates another body page with a layout that matches the right master page and
pours text into the body page’s text frame.






>
# end of ParaLine
>
# end of Para
>
# end of TextFlow

ADOBE FRAMEMAKER 35
MIF Reference

Why one body page?

The method you use to create body pages is different from the method that FrameMaker uses when it writes a MIF
file. When FrameMaker writes a file, it knows where each page break occurs in the file, so it creates a series of Page
statements that each contain the text and graphics located on that page. When you are importing a document, you
do not know where page breaks will fall, so you cannot break the document into a series of Page statements. Instead,
you simply create one text flow for the entire document and link it to a single, empty body page. When the MIF interpreter reads the file, it creates as many pages as the document requires and gives each page the background specified
by the master page.

Creating a double-sided custom layout
If you import a two-sided document, you might need to specify different page layouts for right and left pages. For
example, a document might have a wider inside margin to allow extra room for binding. You can do this in a MIF
file by creating and linking a second master page and a second body page. As with a single-sided layout, all the
document’s text is in one text flow. When the MIF interpreter reads the file, it adds alternate left and right body pages
to the document. You can control whether the document starts with a right page or a left page by using the DParity
statement.
For an example of a document with left and right master pages, see the sample file dblpage.mif.

Creating a first master page
In addition to left and right master pages, you can create custom master page layouts that you can apply to body
pages. For example, some books have a special layout for the first page in a chapter.
In a MIF file, you can create as many master pages as you need, but you cannot apply all of them to the appropriate
body pages. You can only apply a left page, a right page, and one additional custom master page to the body pages.
Furthermore, you can only link the custom master page to the first page in a document.
When you are importing a document into FrameMaker, you do not know how much text the MIF interpreter will
put on a page; you can only determine where the first page begins. When the interpreter reads the MIF file, it applies
the custom master page layout to the first page in the document. For each subsequent page, it uses the DParity and
DTwoSides statements to determine when to add a left page and when to add a
right page.
Other master page layouts that you’ve defined are not lost when the interpreter reads a MIF file. The user can still
apply these page layouts to individual body pages.
For an example of a MIF file with a first page layout, see the sample file frstpage.mif.

Adding headers and footers
Headers and footers are defined in untagged text flows on the master pages of a document. When FrameMaker
creates default master pages, it automatically provides untagged text flows for headers and footers.
If you are importing a document that has headers and footers, you define additional text frames on the master pages.
Link an untagged text flow to each additional text frame on the master page. The untagged text flow contains the
text of the header or footer.
For an example of a MIF file with a footer, see the sample file footers.mif. Note that the footer text flow contains
a variable; you can place variables only in untagged text flows on a master page, not in tagged flows.

ADOBE FRAMEMAKER 36
MIF Reference

Creating markers
A FrameMaker document can contain markers that hold hidden text and mark locations. For example, you use
markers to add index entries, cross-references, and hypertext commands to a document. FrameMaker provides both
predefined marker types and markers that you can define as needed. (For more information about markers and
marker types, see page 135.)
Within a FrameMaker document, you insert a marker by choosing the Marker command from the Special menu. In
a MIF file you insert a marker by using a Marker statement. The Marker statement specifies the marker type and the
marker text.
The following example inserts an index marker:

# Index marker
# Index entry
>
# end of Marker

>
# end of ParaLine
>
# end of Para

The MText statement contains the complete index entry.
When FrameMaker writes a Marker statement, the statement includes an MCurrPage substatement with the page
number on which the marker appears. You do not need to provide an MCurrPage statement when you generate a
MIF file; this statement is ignored when the MIF interpreter reads a MIF file.

Creating cross-references
In a FrameMaker document, you can create cross-references that are automatically updated. A cross-reference can
refer to an entire paragraph or to a particular word or phrase in a paragraph. The text to which a cross-reference
points is called the reference source; the actual location of the cross-reference is the reference point.
The format of a cross-reference determines its appearance and the wording. Cross-reference formats include building
blocks, instructions to FrameMaker about what information to extract from the reference source. A common
building block is <$pagenum>, which FrameMaker replaces with the page number of the reference source. Another
common building block is <$paratext>, which FrameMaker replaces with the text content of the paragraph,
excluding autonumbering and special characters such as tabs and forced line breaks.
Within a FrameMaker document, you insert and format cross-references by choosing Cross-Reference from the
Special menu. In a MIF file, you create a cross-reference as follows:

•
•
•

Create the format of cross-references by using XRefFormats and XRefFormat statements.
Insert a marker at the reference source by using a Marker statement.
Insert the reference point by using an XRef statement.

Creating cross-reference formats
The cross-reference formats for a document are defined in one XRefFormats statement. A document can have only
one XRefFormats statement.
The XRefFormats statement contains one or more XRefFormat statements that define the cross-reference formats.
A cross-reference format consists of a name and a definition.

ADOBE FRAMEMAKER 37
MIF Reference


'>
>
# end of XRefFormat
>
# end of XRefFormats

The name can be any string allowed in a MIF file (see “Character set in strings” on page 7). In this example, a
nonbreaking space (\x11) appears between the word “page” and the page number. Each cross-reference format must
have a unique name; names are case-sensitive. The cross-reference definition contains text and cross-reference
building blocks. See your user’s manual or the online Help system for a list of building blocks.

Inserting the reference source marker
To mark the location of the reference source, insert a Marker statement at the beginning of the reference source. The
following example creates a cross-reference to a heading:


# Identifies this as a cross-reference

# Cross-reference source
>
# end of Marker

>
# end of ParaLine
>
# end of Para

The  statement identifies this as a cross-reference marker; it is required. The MText statement contains
the cross-reference source text, which must be unique. When FrameMaker writes a cross-reference, it adds a unique
number and the paragraph tag to the MText statement, as shown in the previous example. While the number is not
required, it guarantees that the cross-reference points to a unique source when the number is present. In the previous
example, the number in  is not mandatory. However, the number in the example ensures that the new crossreference points to the ‘My heading’ heading.

Inserting the reference point
The final step in creating a cross-reference is to insert an XRef statement at the position in text where the crossreference should appear. The XRef statement provides the name of the cross-reference format (defined in
XRefFormat), the source text, and the pathname of the file containing the source:



# Cross-reference format

# Source text

# File containing source
>
# end of XRef


>
# end of ParaLine
>
# end of Para

ADOBE FRAMEMAKER 38
MIF Reference

The format name must exactly match the name of a format defined in XRefFormats. The source text must be unique
and must match the string in the MText statement in the corresponding reference point marker. The XRefSrcFile
statement is only required if the reference source is in a different file from the reference point. It must be a valid MIF
filename (see “Device-independent pathnames” on page 7).
You must also supply an XRefEnd statement after the XRef statement.

How FrameMaker writes cross-references
When FrameMaker writes a cross-reference, it provides the actual text that will appear at the reference point. This
information is not required in a MIF input file. The previous example would be written as follows:



>
# end of XRef

# The text that appears in the document;

# in this case, a page number followed a

# hard space and the number 1

# End of cross-reference text

If you do include the text of the cross-reference, make sure that the XRefEnd statement follows the text. FrameMaker
considers everything between the XRef statement and the XRefEnd statement to be part of the cross-reference.

Creating variables
In a FrameMaker document, variables act as placeholders for text that might change. For example, many documents
use a variable for the current date. A variable consists of a name, which is how you choose a variable, and a definition,
which contains the text and formatting that appear where a variable is inserted.
FrameMaker provides two kinds of variables: system variables that are predefined by FrameMaker, and user variables
that are defined by the user. System variables contain building blocks that allow FrameMaker to extract certain information from the document or the system, such as the current date or the current page number, and place it in text.
Headers and footers frequently use system variables. You can modify a system variable’s definition but you cannot
create new system variables. User variables contain only text and formatting information.
Within a FrameMaker document, you insert and define variables by choosing Variable from the Special menu. The
variable appears in the document text where it is inserted.
In a MIF file, you define and insert variables as follows:

•
•

Define and name the document variables by using VariableFormats and VariableFormat statements.
Insert the variable in text by using the Variable statement.

Defining user variables
All variable definitions for a document are contained in a single VariableFormats statement. The VariableFormats statement contains a VariableFormat statement for each document variable. The VariableFormat

statement provides the variable name and definition.


>
# end of VariableFormat

ADOBE FRAMEMAKER 39
MIF Reference

>

# end of VariableFormats

The variable name must be unique; case and spaces are significant. For a user variable, the variable definition can
contain only text and character formats; you can provide any character format defined in the Character Catalog. The
following example applies the default character format Emphasis to a variable:

A15-24'>
>
# end of VariableFormat

You can specify character formats as building blocks; that is, the character format name must be enclosed in angle
brackets. Because of MIF parsing requirements, you must use a backslash sequence for the closing angle bracket.

Using system variables
Whenever you open or import a MIF file, the MIF interpreter provides the default system variables. You can redefine
a system variable but you cannot provide new system variables.
System variables are defined by a VariableFormat statement. For example, the following statement shows the
default definition for the system variable Page Count:

'>
>
# end of VariableFormat

System variables contain building blocks that provide certain information to FrameMaker. These building blocks are
preceded by a dollar sign ($) and can only appear in system variables. Some system variables have restrictions on
which building blocks they can contain. These restrictions are discussed in your user’s manual and in the online Help
system. You can add any text and character formatting to any system variable.

Inserting variables
To insert a user variable or a system variable in text, use the Variable statement. The following example inserts the
system variable Page Count into a paragraph:


>
# end of Variable

>
# end of ParaLine
>
# end of Para

The VariableName string must match the name of a variable format defined in the VariableFormats statement.
Variables are subject to the following restrictions:

•
•
•

You cannot place any variable in a tagged text flow on a master page.
The system variable Current Page # and the system variables for running headers and footers can only appear
in untagged text flows on a master page.
The system variables Table Continuation and Table Sheet can only appear in tables.

ADOBE FRAMEMAKER 40
MIF Reference

Creating conditional text
You can produce several slightly different versions of a document from a single conditional document. In a conditional document, you use condition tags to differentiate conditional text (text that is specific to one version of the
document) from unconditional text (text that is common to all versions of the document).
In a MIF file, you create a conditional document as follows:

•
•

Create the condition tags to be used in the document and specify their format via ConditionCatalog and
Condition statements.
Apply one or more condition tags to the appropriate sections of the document via Conditional and Unconditional statements.

•

Show or hide conditional text by using the CState statement.

Creating and applying condition tags
In MIF, all condition tags are defined in a ConditionCatalog statement, which contains one or more Condition
statements. A Condition statement specifies the condition tag name, the condition indicators (how conditional text
appears in the document window), a color, and a state (either hidden or shown).
For example, the following statements create a Condition Catalog with two conditional tags named Summer and
Winter:




>




>
>

#
#
#
#
#

Condition tag name
Condition state (now hidden)
Condition indicator
Condition indicator
end of Condition

# This condition is shown

# end of Condition
# end of ConditionCatalog

To mark conditional and unconditional passages within document text, use Conditional and UnConditional
statements as shown in the following example:

# Unconditional text

# Specifies condition tag
>
# end of Conditional

# Conditional text

# Specifies condition tag
>
# end of Conditional



# Unconditional text
>
# end of ParaLine

>


>



>
>

# end of Conditional

# end of Conditional

# end of ParaLine
# end of Para

You can apply multiple condition tags to text by using multiple InCondition statements:


>
# end of Conditional

Showing and hiding conditional text using Boolean expressions
You can also use Boolean expressions to show or hide conditional text. Boolean condition expressions are identified
using the BoolCondTag. You can create these expressions by linking condition tags with boolean operators and
describe them in the BoolCondExpr statement. If the value of BoolCondState of a Boolean condition expression is
set to ‘Active’ the show/hide state of the text in that document is governed by that Boolean condition expression. All
text for which the expression evaluates to ‘True’ is shown, while the rest are hidden.
Consider a scenario where you have created Conditions summary, detail, comment, and a boolean expression
"comment"OR"summary"OR"detail”. If the value of BoolCondState is ‘Active’, FrameMaker uses this expression to
determine the Show/Hide state of conditional text.
The BoolCond statement appears in the BoolCondCatalog as shown below :




> # end of BoolCond
When you save a FrameMaker 8 document as MIF, the following system tags are displayed in the MIF:

•
•
•

FM8_SYSTEM_HIDEELEMENT
FM8_TRACK_CHANGES_ADDED
FM8_TRACK_CHANGES_DELETED

Note: These tags are used by the system and are reserved for internal use only.

How FrameMaker writes a conditional document
If you are converting a MIF file that was generated by FrameMaker, you need to understand how FrameMaker writes
a file that contains hidden conditional text.
When FrameMaker writes a MIF file, it places all hidden conditional text in a text flow with the tag name HIDDEN.
Within the document text flow, a conditional text marker, >, indicates where hidden conditional text would appear if shown.

ADOBE FRAMEMAKER 42
MIF Reference

The marker text contains a plus sign (+) followed by a unique five-digit integer. The corresponding block of hidden
text is in the hidden text flow. It begins with a conditional text marker containing a minus sign (–) and a matching
integer and ends with a marker containing an equal sign (=) and the same integer. One or more Para statements
appear between the markers. If the hidden conditional text doesn’t span paragraphs, all the text appears in one Para
statement. If the hidden text spans paragraphs, each end of paragraph in the conditional text forces a new Para
statement in the hidden text flow.
The following example shows how FrameMaker writes the sentence used in the previous example:
# This text flow contains the sentence as it appears in
# the document body.



# This marker indicates that hidden text appears in the
# hidden text flow.



>
# end of Marker

>
# end of Conditional


...
>
# end of Para
>
# end of TextFlow
# This text flow contains the hidden conditional text.



# This marker shows the beginning of hidden text.
# Its ID matches the marker ID in the body text flow.


>
# end of Marker

>
# end of Conditional
# Here's the hidden text.


# This marker shows the end of hidden text. It must
# match the marker that begins with a minus sign (-).


>
# end of Marker
>
>
# end of Para
...
>
# end of TextFlow

ADOBE FRAMEMAKER 43
MIF Reference

Creating filters
Structured FrameMaker allows specific components in a structured document to be processed differently to generate
different output formats. Consider a case where you want some text in a document to be included in the Print output,
but not in the HTML Help output. You can create a filter based on the values of the attributes of elements, and process
only those elements in the document that match the filter, and include such elements in the Print output.
In a MIF file, you create a filter required for generating the output of a structured document using the DefAttrValuesCatalog, DefAttrValues, AttrCondExprCatalog, and AttrCondExpr statements.
All MIF 8 documents contain a catalog of predefined filters. The catalog is empty if a filter is not defined in a structured document. A filter comprises a tag called AttrCondExprTag, the expression tag AttrCondExprStr, and the
state of the filter which is stored in the AttrCondState tag. The state of the filter indicates whether the filter is active
in the document. Although the catalog can have several filters, only one filter must be active at any time.
To create filters, use the AttrCondExprCatalog statement as illustrated in the following example where two filters
are created:



> # end of AttrCondExpr



> # end of AttrCondExpr
> # end of AttrCondExprCatalog

The following statements create an empty filter catalog:
 # end of AttrCondExprCatalog
All MIF 8 documents contain attribute-value pairs.
To create a catalog of attributes with values, use the DefAttrValuesCatalog statement as illustrated in the following
example:



> # end of DefAttrValues



> # end of DefAttrValues
> # end of DefAttrValuesCatalog

The following statements create a catalog of attributes without values:
 # end of DefAttrValuesCatalog

ADOBE FRAMEMAKER 44
MIF Reference

Including template files
When you write an application, such as a filter or a database publishing application, to generate a MIF file, you have
two ways to include all formatting information in the file:

•
•

Generate all paragraph formats and other formatting information directly from the application.
Create a template document in FrameMaker, save it as a MIF file, and include the template file in your generated
MIF file.

It’s usually easier to create a template in FrameMaker than it is to generate the formatting information directly.
To create the template as a MIF file, do the following:
1

Create the template in FrameMaker and save it as a MIF file.

2

Edit the MIF file to preserve the formatting catalogs and the page definitions and delete the text flow.

Generate the text flow for your document and use the include statement to read the formatting information
from the template.

3

Creating the template
Create the template document in FrameMaker. Define the paragraph and character formats, table formats, variable
and cross-reference formats, master pages, and any other formatting and page layout information that your
document needs. Generally, a template contains some sample lines that illustrate each format in the document. Save
the completed template as a MIF file. For more information about creating templates, see your user’s manual.

Editing the MIF file
You need to edit the resulting MIF file to extract just the formatting and page layout information.
1

Delete the MIFFile statement.

2

Search for the first body page and locate its TextRect statement.
To find the first body page, search for the first occurrence of . Suppose the first body page
in your MIF file looks like this:















>
# end of DashedPattern


>
# end of TextRect
>
# end of Page

ADOBE FRAMEMAKER 45
MIF Reference

The ID for the TextRect on this body page is 7. Remember this ID number. If there is more than one TextRect
on the body page, remember the ID of the first one.
3

Locate the text flow associated with the TextRect statement on the first body page and delete it.
Suppose you are working with the previous example. You would search for the statement  to
locate the text flow. It might look similar to the following:


# end of Notes




>
>
# end of Para
>
# end of TextFlow

Delete the entire text flow.
4

From your application, generate a MIF file that includes the edited template file.
Suppose the edited MIF file is called mytemplate.mif. Your application would generate the following two lines
at the top of any new MIF file:


# Generated by my application
include (mytemplate.mif)
The include statement is similar to a C #include directive. It causes the MIF interpreter to read the contents of

the file named mytemplate.mif. For more information about filenames in MIF, see “Device-independent
pathnames” on page 7.
5

From your application, generate a text flow that contains the entire document contents.
The text flow should use the ID and tag name of the text flow you deleted from the template file; this associates
the new text flow with the first body page in the template.
The entire generated MIF file would look something like this:


# Generated by my application
include (mytemplate.mif)




>
>
# end of Para
>
# end of TextFlow

A user can open the generated MIF file to get a fully formatted FrameMaker document.

Setting View Only document options
You can use MIF statements to control the display of View Only documents. A View Only document is a locked
FrameMaker hypertext document that a user can open, read, and print but not edit. You can use MIF statements to
control the appearance and behavior of the document window and to control the behavior of cross-references in
locked documents.

ADOBE FRAMEMAKER 46
MIF Reference

The MIF statements for View Only documents are intended for hypertext authors who want more control over
hypertext documents. They do not have corresponding commands in the user interface.
The View Only MIF statements described in this section must appear in a Document statement. These statements
have no effect in an unlocked document. Make sure that the Document statement also includes the following
substatement:


Changing the document window
You can use MIF statements to change the appearance and behavior of the document window in the following ways:

•

To suppress the document window menu bar, use the following statement:



This statement has no effect in the Windows version of FrameMaker because those versions have an application
menu bar rather than a document window menu bar.

•

To suppress the display of scroll bars and border buttons in the document window, use the following statement:



•

To suppress selection in the document window, include the following statement:



You can normally select text and objects in a locked document by Control-dragging in UNIX and Windows versions.
Specifying  prevents all selection in a locked document.

•

To suppress the appearance of a document region pop-up menu, use the statement:



A document region pop-up menu is a menu activated by the right mouse button. For example, in UNIX versions of
FrameMaker, the Maker menu can be accessed by pressing the right mouse button. If the DViewOnlyWinPopup
statement has a value of No, the background menu does not appear when the right mouse button is pressed. This
statement has no effect in the Windows version of FrameMaker.

•

To make a window behave as a palette window, use the following statement:



A palette window is a command window, such as the Equations palette, that exhibits special platform-dependent
behavior. In UNIX versions of FrameMaker, a palette window can only be dismissed; it cannot be closed to an icon.
In Windows versions, a palette floats outside the main application window and cannot be unlocked. To edit the
palette, you need to reset the DViewOnlyWinPalette statement to No in the MIF file before opening it in
FrameMaker.

Using active cross-references
A locked document automatically has active cross-references. An active cross-reference behaves like a hypertext
gotolink command; when the user clicks on a cross-reference, FrameMaker displays the link’s destination page. By
default, the destination page is shown in the same document window as the link’s source.
You can use MIF statements to turn off active cross-references and to change the type of hypertext link that the crossreference emulates. (By default, cross-references emulate the gotolink behavior.)

•

To make cross-references emulate the openlink command, which displays the destination page in a new
document window, use the following statement:



Use this setting to allow users to see both the source page and the destination page.

•

To turn off active cross-references, use the following statement:

ADOBE FRAMEMAKER 47
MIF Reference



Use this setting to emulate the behavior in earlier FrameMaker versions.
You can use the DViewOnlySelect statement to control whether active cross-references highlight the marker
associated with destination text.

•

When cross-references are active and  is specified, clicking a cross-reference in the
document highlights the marker associated with the destination text.

•

When cross-references are active and  is specified, clicking a cross-reference
does not highlight the marker. However, the user can select text in the locked document.

•

When cross-references are active and  is specified, clicking a cross-reference does not
highlight the marker. The user cannot select text in the locked document.

By default, clicking a cross-reference does not highlight the marker associated with the destination text but the user
can select text in the locked document.

Disabling commands
You can disable specific commands in a View Only document. For example, a hypertext author might disable copy
and print commands for sensitive documents.
To disable a command, you must supply the hex code, called an fcode, that internally represents that command in
FrameMaker. For example, you can disable printing, copying, and unlocking the document by supplying the
following statements:
# Disable printing
# Disable copying
# Disable unlocking the document

The following table lists the files where you can find fcodes for commands:
For this version

Look here

UNIX

$FMHOME/fminit/language/configui/Commands, where language is the language in
use, such as usenglish

Windows

install_dir/fminit/configui/cmds.cfg, where install_dir is the directory where
FrameMaker is installed

See the online manual Customizing FrameMaker for more information about the commands file in UNIX versions.

Applications of MIF
You can use MIF files any time you need access to FrameMaker’s formatting capabilities. This section provides some
examples of how MIF can be used and some tips on minimizing MIF statements.
You can use MIF to:

•
•
•
•

Share files with earlier versions of FrameMaker
Perform custom document processing
Write import and export filters for FrameMaker documents
Perform database publishing

Sharing files with earlier versions
FrameMaker automatically opens documents created with an earlier version of FrameMaker (2.0 or higher).

ADOBE FRAMEMAKER 48
MIF Reference

To use an earlier version of FrameMaker (such as 5.5) to edit a document created with a later version of FrameMaker
(such as 7.0):
1

Use the newer FrameMaker product version to save the document in MIF.

2

Open the MIF file with the earlier version of FrameMaker.

Note: Earlier versions of FrameMaker do not support all MIF statements in the current version. For example, when you
use version 5.5.6 or earlier of FrameMaker to open a document created in version 6.0 or later, MIF statements specifying
optimized PDF size are skipped. You can ignore the related error messages. However, to regain the optimized PDF size
you will need to use the Optimize Pdf Size command. For a description of the differences between MIF 7.0 and previous
versions, see , “MIF Compatibility.”

Modifying documents
You can use MIF to perform custom document processing. For example, you can create a program or write a series
of text editor macros to search for and change paragraph tags in a MIF file. You can also edit a MIF book file to easily
add or change document names in a book.
For an example of using MIF to easily update the values in a table, see “Updating several values in a table” on
page 239.

Writing filters
MIF allows you to write filters to convert data from other formats to FrameMaker format and to convert a MIF file
to another document format. While FrameMaker will change in future versions, MIF will always remain compatible
with earlier versions, so your filters can continue to write MIF files.
Import filters

MIF statements can completely describe a FrameMaker document or book file. Because documents created with
most word processors and text editors have fewer features than a FrameMaker document, your import filters
normally use only a subset of MIF statements.
To write an import filter, first determine which MIF statements describe the format of the input file. Then write a
program to translate the file from its original file format to MIF. If the imported document doesn’t use sophisticated
formatting and layout features, don’t include the corresponding MIF statements in your filter.
For example, if the file was created by a word processor, your filter should convert document text to a single
TextFlow statement. Ignore line and page breaks (except forced breaks) in your source document, because the text
will be repaginated by the MIF interpreter. If the document uses style sheets, convert paragraph styles to paragraph
formats in a PgfCatalog statement, and convert table styles to table formats in a TblCatalog statement.
Output filters

You can write output filters that convert a MIF file to any format you want. While you should be familiar with all
MIF statements to determine which ones you need to translate a FrameMaker document, your output filter doesn’t
need to convert all the possible MIF statements.
In most cases, a MIF description of a FrameMaker document contains more information than you need. Because
MIF appears as a series of nested statements, your output filter must be able to scan a MIF file for the information it
needs and skip over statements that it will not use.

ADOBE FRAMEMAKER 49
MIF Reference

Installing a filter

In UNIX versions, you can set up FrameMaker to automatically start a script that runs a filter based on the filename
suffix. The filter can convert a file to a MIF file. FrameMaker then interprets the MIF file, storing the results in a
FrameMaker document. For more information about installing your filter, see the online manual Customizing
FrameMaker.
Minimizing MIF statements

The following tips may help you minimize the number of MIF statements that your filter needs to generate:

•

If you are not concerned about controlling the format of a document, use the default formats that FrameMaker
provides for new documents. The user can always change formats as needed within the FrameMaker document.

•

If you are filtering a document from another application into FrameMaker and then back to the application, you
may want to import the filter’s MIF file into a FrameMaker document, save the document as a MIF file, and then
convert the file back to the original format from the MIF file generated by FrameMaker. This technique takes
advantage of FrameMaker’s syntactically complete MIF statements, but allows your filter to write a shorter MIF
file.

•

If your filter needs to generate fully-formatted MIF files, you can minimize the number of formatting statements
by creating a template in FrameMaker, saving the template as a MIF file, and then including the MIF template
file in your filter’s generated document. You must edit the saved MIF template (see “Including template files” on
page 44). An advantage of this technique is that you can use the same template for more than one document.

•

Define macros to ease the process of generating statements. For an example of using macros, see “Text example”
on page 230.

Database publishing
You can use MIF files to import information from an external application, such as a database, into a FrameMaker
document. This type of information transfer is often called database publishing. For example, you can write a C
program or a database script to retrieve information from a database and store that information as a MIF file. A user
can then open or import the MIF file to get a fully formatted FrameMaker document that contains up-to-date information from the database.
There are four key elements to a typical database publishing solution:

•

The database provides a system to enter, manipulate, select, and sort data. You can use any database that can
create text-based output files.

•

MIF provides the data interchange format between the database and FrameMaker. MIF can completely describe
a document in ASCII format, including information such as text and graphics, page layout, and indexes and
cross-references.

•

FrameMaker provides the text formatting. FrameMaker reads MIF files and dynamically manages line breaks,
page breaks, headers and footers, and graphics. The user can view, print, save, or even navigate through an online
document using hypertext commands.

ADOBE FRAMEMAKER 50
MIF Reference

•

Optional control programs allow you to tightly integrate the database and FrameMaker. Some database
publishing applications are controlled entirely from the database system or through hypertext commands
embedded in a FrameMaker document. More complicated applications may require an external control
program, such as a C program that issues queries and selects a FrameMaker document template.

Text
Final Document

CAD or Other
Illustration
Packages
MIF (ASCII text)

Database

For an example of a database publishing application, see “Database publishing” on page 240.

Debugging MIF files
When FrameMaker reads a MIF file, it might detect errors such as unexpected character sequences. In UNIX and
Windows versions, FrameMaker displays messages in a console window. In the Windows version, you must turn on
Show File Translation Errors in the Preferences dialog box to display messages in a window. If FrameMaker finds an
error, it continues to process the MIF file and reads as much of the document as possible.
When you are debugging MIF files, you should examine the error messages for clues. The MIF interpreter reports
line numbers for most errors. For a description of MIF error messages, see , “MIF Messages.”
In some cases, the MIF interpreter reports an “invalid opcode” message for a statement. If the statement seems
correct to you, check the statements above it. A missing right angle bracket can cause the interpreter to parse a
statement incorrectly.
If the MIF interpreter brings up an empty document when it reads your file, it has stopped trying to interpret your
file and opened an empty custom document instead. Close the document and check your MIF file for errors. Try
adding a Verbose statement to your file to get more complete messages.
If your MIF statements are syntactically correct but cause unexpected results in the document, check for mismatched
ID numbers and check the placement of statements. Many MIF statements are position-dependent and can cause
errors if they appear in the wrong place in a file. For example, an ATbl statement that comes before its corresponding
Tbl statement causes an error.

ADOBE FRAMEMAKER 51
MIF Reference

Here are some additional tips for debugging MIF files:

•

Use the Verbose statement to generate comments. To debug a specific section of a MIF file, you can precede the
section with the  statement and end the section with the  statement.

•
•

Make sure angle brackets are balanced.

•

Make sure that string arguments are enclosed in straight single quotation marks. (See “MIF data items” on page 5
for an example.)

•
•

Make sure ID numbers are unique.

•
•
•
•

Make sure that tag names with spaces are enclosed in straight single quotation marks.

Make sure that MIF statement names are capitalized correctly. MIF statement names and keyword values are
case-sensitive.

Make sure that every table anchor has a corresponding table instance, and that every table instance has an anchor
in the text flow.
Make sure paired statements are balanced. For example, XRef and XRefEnd statements must be paired.
Make sure that right angle bracket (>) and backslash (\) characters in text are preceded by a backslash.
Make sure that hexadecimal characters, for example \xe6, have a space after them.

Other application tools
The Frame Developer’s Kit (FDK) provides tools that you can use to write filters and to perform custom document
processing. The FDK includes the Application Program Interface (API), which you can use to create a C application
that can create and save documents, modify documents, and interact with the user. The FDK also includes the Frame
Development Environment (FDE), which allows you to make your FDK clients portable to the platforms that
FrameMaker supports.
MIF files can be used by C applications, text processing utilities, or UNIX shell scripts. You might want to work
directly with MIF files if you are filtering large numbers of files in batch mode. You also might want to work with
MIF files if you are doing simple document processing, such as changing a few tag names, or if you are setting options
for View Only documents.
You can use the FDK and MIF files together; for example, a database publishing application can extract values from
a database and write out the information as a table in a MIF file. An FDK client can then automatically open the MIF
file as a FrameMaker document.

Where to go from here
This chapter has given you a start at working with MIF files. You can use the information in this chapter as guidelines
for working with similar MIF statements. Once you have experimented with basic MIF files, you can learn about
other MIF statements by creating small FrameMaker documents that contain a specific feature and saving these
documents as MIF files. Because FrameMaker writes complete and precise MIF code, it is your ultimate source for
learning about MIF statements.
For more information about document components not described in this chapter, see the MIF statement descriptions in , “MIF Document Statements”, , “MIF Book File Statements”, and , “MIF Statements for Structured
Documents and Books”.

52

Chapter 3: MIF Document Statements
This chapter describes the structure of MIF document files and the MIF statements they can contain. Most MIF
statements are listed in the order that they appear in a MIF file, as described in the following section. If you are
looking for information about a particular statement, use this manual’s statement index to locate it. If you are looking
for information about a type of object, such as a table or paragraph, use the table of contents to locate the MIF statements that describe the object.

MIF file layout
The following table lists the main statements in a MIF document file in the order that Adobe® FrameMaker® writes
them. You must follow the same order that FrameMaker uses, with the exception of the macro statements and control
statements, which can appear anywhere at the top level of a file. Each statement, except the MIFFile statement, is
optional. Most main statements use substatements to describe objects and their properties.
Statement

Description

MIFFile

Labels the file as a MIF document file. The MIFFile statement is required and must be
the first statement in the file.

Control statements

Establish the default units in a Units statement, the debugging setting in a Verbose
statement, and comments in a Comment statement. These statements can appear
anywhere at the top level as well as in some substatements.

Macro statements

Define macros with a define statement and read in files with an include statement.
These statements can appear anywhere at the top level.

ColorCatalog

Describes document colors. The ColorCatalog statement contains Color statements that define each color and tag.

ConditionCatalog

Describes condition tags. The ConditionCatalog statement contains Condition
statements that define each condition tag and its properties.

BoolCondCatalog

Describes Boolean Condition Expressions. The BoolCondCatalog statement contains
BoolCond statements that define each Boolean condition expression with its
show/hide properties.

CombinedFontCatalog

Describes combined fonts. The CombinedFontCatalog statement contains
CombinedFontDefn statements that define each combined font and its component
fonts.

PgfCatalog

Describes paragraph formats. The PgfCatalog statement contains Pgf statements
that define the properties and tag for each paragraph format.

ElementDefCatalog

Defines the contents of the Element Catalog for a structured document. For more information, see , “MIF Statements for Structured Documents and Books.”

FmtChangeListCatalog

Defines the contents of the Format Change List Catalog for a structured document. For
more information, see , “MIF Statements for Structured Documents and Books.”

DefAttrValuesCatalog

Defines the DefAttrValuesCatalog for a structured document. For more information, see
, “MIF Statements for Structured Documents and Books.”

AttrCondExprCatalog

Defines the AttrCondExprCatalog for a structured document. For more information, see
, “MIF Statements for Structured Documents and Books.”

ADOBE FRAMEMAKER 53
MIF Reference

Statement

Description

FontCatalog

Describes character formats. The FontCatalog statement contains Font statements
that define the properties and tag for each character format.

RulingCatalog

Describes ruling styles for tables. The RulingCatalog statement contains Ruling
statements that define the properties for each ruling style.

TblCatalog

Describes table formats. The TblCatalog statement contains TblFormat statements that define the properties and tag for each table format.

StyleCatalog

Describes object styles. The StyleCatalog statement contains Style statements
that define the properties and tags for each object style.

KumihanCatalog

Contains the Kumihan tables that specify line composition rules for Japanese text.

Views

Describes color views for the document. The Views statement contains View statements that define which colors are visible in each color view.

VariableFormats

Defines variables.The VariableFormats statement contains VariableFormat
statements that define each variable.

MarkerTypeCatalog

Defines a catalog of user-defined markers for the current document. The MarkerTypeCatalog statement contains MarkerTypeCatalog statements that specify each
user-defined marker.

XRefFormats

Defines cross-reference formats. The XRefFormats statement contains XRefFormat statements that define each cross-reference format.

Document

Controls document features such as page size, margins, and column layout. Because the
MIF interpreter assumes the same page defaults as the New command, this section is
necessary only if you want to override those default settings.

BookComponent

Provides the setup information for files generated from the document. BookComponent statements describe the filename, filename suffix, file type, and paragraph tags or
marker types to include.

InitialAutoNums

Provides a starting value for the autonumber series in a document.

Dictionary

Lists allowed words in the document.

AFrames

Describes all anchored frames in the document. The AFrames statement contains
Frame statements that define the contents ID number of each anchored frame. Later in
the MIF file, where the document contents are described, the MIF file must include an
AFrame statement that corresponds to each Frame statement. The AFrame statement
identifies where a specific anchored frame appears in a text flow; it need only supply the
frame’s ID number.

Tbls

Describes all tables in the document. The Tbls statement contains Tbl statements that
define the contents of each table and its ID number. Later in the MIF file, where the document contents are described, the MIF file must include a short ATbl statement that corresponds to each Tbl statement. The ATbl statement identifies where a specific table
appears in a text flow; it need only supply the table’s ID number.

Page

Describes the layout of each page in the document. The description includes the layout of
each page, the dimensions of the text frames, and the objects and other graphic frames
on that page. A MIF file created by FrameMaker includes a Page statement for each page
in the document, including the master pages. When you write an import filter, you can
omit Page statements; the MIF interpreter repaginates the document as needed.

InlineComponentsInfo

Describes the mini table of contents (mini TOC) in the document. The InlineComponentsInfo statement contains InlineComponentInfo statement that define
the properties of the mini TOC.

ADOBE FRAMEMAKER 54
MIF Reference

Statement

Description

TextFlow

Represents the actual text in the document. Within TextFlow statements, the text is
expressed in paragraphs which in turn contain paragraph lines. Line endings of
ParaLine statements are not significant because the MIF interpreter wraps the
contents of ParaLine statements into paragraphs.

MIFFile statement
The MIFFile statement identifies the file as a MIF file. The MIFFile statement is required and must be the first line
of the file with no leading white space.
Syntax
 #comment

(Required) Identifies a MIF file

The version argument indicates the version number of the MIF language used in the file, and comment shows the
name and version number of the program that generated the file. For example, a MIF file saved in FrameMaker (2015
release) begins with the following line:
 # Generated by FrameMaker 12.0.2.366

MIF is compatible across versions, so a MIF interpreter can parse any MIF file. The results may sometimes differ
from your intentions if a MIF file describes features that are not included in FrameMaker that reads the MIF file. For
more information, see , “MIF Compatibility.”

Comment statement
The Comment statement identifies an optional comment.
Syntax


Identifies a comment

Usage

Comments can appear within Comment statements, or they can follow a number sign (#). When it encounters a
number sign, the MIF interpreter ignores all text until the end of the line, including angle brackets.
Because Comment statements can be nested within one another, the MIF interpreter examines all characters following
an angle bracket until it finds the corresponding angle bracket that ends the comment.

 >>>

The MIF interpreter processes number signs within Comment statements as normal comments, ignoring the
remainder of the line.
 statement,
# the MIF interpreter ignores the rest of the characters in that
# line--including angle brackets < >.>
# End of  Statement.

ADOBE FRAMEMAKER 55
MIF Reference

Macro statements
MIF has two statements that allow you to define macros and include information from other files. Although these
statements usually appear near the beginning of a MIF file, you need not put them in that position. However, the
MIF interpreter does not interpret a macro that occurs before its definition.

define statement
The define statement creates a macro. When the MIF interpreter reads a MIF file, it replaces the macro name with
its replacement text. A define statement can appear anywhere in a MIF file; however, the macro definition must
appear before any occurrences of the macro name.
Syntax
define (name, replacement)

Creates a macro

Usage

Once a macro has been defined, you can use the macro name anywhere that the replacement text is valid. For
example, suppose you define the following macro:
define (Bold, >)

When you use the macro in MIF statements, write . The interpreter replaces  with >. Note that it retains the outer angle brackets in the replacement text.

Note that when you use a macro in a MIF file, you must enclose macro names in brackets to comply with the MIF
syntax (for example, write  instead of Bold). The MIF parser requires these brackets to interpret the macro
correctly.

include statement
The include statement reads information from other files. It is similar to an #include statement in a C program.
When the MIF interpreter reads a MIF file, it replaces the include statement with the contents of the included file.
An include statement can appear anywhere in a MIF file. However, make sure that the contents of the included file
appear in a valid location when they are read into the MIF file.
Syntax
include (pathname)

Reads in a file

Usage

The pathname argument specifies a UNIX-style pathname, which uses a slash (/) to separate directory names (for
example, /usr/doc/template.mif). For the Windows version of FrameMaker, use the following guideline for
specifying absolute pathnames:

•

For Windows versions, start an absolute pathname with the drive name. For example, to include the file
myfile.doc from the directory mydir on the c: drive, specify the pathname c:/mydir/myfile.doc. Don’t
start an absolute path with a slash (/).

If you specify a relative pathname, the MIF interpreter searches for the file to include in the directory or folder that
contains the file being interpreted. In UNIX versions of FrameMaker, the MIF interpreter also searches the
$FMHOME/fminit and the $FMHOME/fminit/filters directories for a file with a relative pathname.

ADOBE FRAMEMAKER 56
MIF Reference

In general, you would use an include statement to read a header file containing define statements that a filter
needs to translate a file. Isolate the data in a header file to simplify the process of changing important mappings. You
can also use an include statement to read in a template file containing formatting information. Your application can
then simply generate a document’s text. For more information, see “Including template files” on page 44.

Track edited text
Reviewers can edit FrameMaker documents sent for review with the Track Text Edit feature enabled. In a MIF file,
you can enable the Track Text Edit feature using the DTrackChangesOn statement. FrameMaker retains the
Windows/Unix login name of the reviewer and a timestamp indicating the time of the edit in each of the edits. Before
you accept all text edits, you can preview the final document with all the text edits or the text edits by a specific
reviewer incorporated in the document. Alternatively, you can preview the original document without the text edits
incorporated in the document. To preview how a document will appear if you accept all text edits or reject all text
edits, use the DTrackChangesPreviewState statement.
Syntax


Preserves the On/Off state of the Track Text Edit feature



Preserves the preview state of the Track Text Edit feature
The preview state can have one of the following values:
Preview Off: DTrackChangesPreviewState set with the
value No
Preview On Final: DTrackChangesPreviewState set with the
value All
Preview On Original: DTrackChangesPreviewState set with
the value Yes



The windows/unix login name of the reviewer whose edits are visible
in the document
The Show Reviewer Name popup menu lets you select the name of the
reviewer whose changes you want to display in the document. The
reviewer’s name selected in the Show Reviewer Name popup menu
appears in this tag. When you select All Users, this tag is empty.



The windows/unix login name of the reviewer who made a particular
change



The time when an edit was made
The number of seconds past after 00:00 hours, Jan 1, 1970 UTC

Conditional text
FrameMaker documents can contain conditional text. In a MIF file, the condition tags are defined by a Condition
statement, which specifies whether the condition tag is hidden or shown. The condition tags for a document are
stored in a ConditionCatalog statement.
Within the text flow, Conditional and Unconditional statements show where conditional text begins and ends.

ADOBE FRAMEMAKER 57
MIF Reference

ConditionCatalog statement
The ConditionCatalog statement defines the contents of the Condition Catalog. A MIF file can have only one
ConditionCatalog statement, which must appear at the top level in the order given in “MIF file layout” on page 52.
Syntax


Defines a condition tag (see “Condition statement,” next)



Additional statements as needed

…
End of ConditionCatalog statement

>

Condition statement
The Condition statement defines the state of a condition tag and its condition indicators, which control how conditional text is displayed in the document window. The statement must appear in a ConditionCatalog statement. The
property statements can appear in any order.
Syntax


Condition tag string



Whether text with this tag is shown or hidden

keyword can be one of:
CHidden
CShown



Format of text with this condition
keyword can be one of:
CAsIs
CUnderline
CDoubleUnderline
CStrike
COverline
CChangeBar



Color for condition tag (see “ColorCatalog statement” on page 83)



Color for condition tag; no longer used, but written out by FrameMaker for backwardcompatibility (see “Color statements” on page 262)



>

End of Condition statement

Conditional and Unconditional statements
The Conditional statement marks the beginning of conditional text and the Unconditional statement marks the
end. These statements must appear in a Row or ParaLine statement.

ADOBE FRAMEMAKER 58
MIF Reference

Syntax


Specifies condition tag from Condition Catalog



Additional statements as needed

…
>

End of Conditional statement



Returns to unconditional state

System generated colors
FrameMaker will automatically generate new colors when multiple tags are applied on text. The ColorTag tag that
is generated is named with the "fm_gen_" prefix and appended with a system-generated integer.

Boolean expressions
A Boolean expression is defined in a BoolCond statement.

BoolCondCatalog statement
You can create Boolean expressions by linking different conditional tags using Boolean operators. In a MIF file,
Boolean condition expressions are defined using a BoolCond statement. The Boolean expressions for a document
are stored in a BoolCondCatalog statement.
The BoolCondCatalog statement defines the contents of Boolean Expression Catalog for conditional text. A MIF
file can have only one BoolCondCatalog statement, after Condition Catalog.
Syntax


Defines a Boolean expression



> #

End of BoolCondCatalog

BoolCond statement
The BoolCond statement defines a new boolean expression, which is used to evaluate the show/hide state of conditional text. Statement must appear in BoolCondCatalog statement. The property statement can appear in any order.
Syntax


Tag name used for Boolean expressions.

ADOBE FRAMEMAKER 59
MIF Reference



Boolean expression used for show/hide evaluation of conditional
text. (OR, NOT, and AND are the operators and condition tags are
operands within a quoted string) For example, “Comment” OR
“Tag1”.



Indicates whether the evaluation of showing or hiding conditional
text is based on this expression.
The string must contain one of the following values:

• 'Active'
• 'Inactive'
End of BoolCond

> #

Filter By Attribute
Elements in a structured document can have one or more attributes associated with them. Using FrameMaker, you
can filter a structured document based on the value of these attributes.
All MIF 8 documents contain a catalog of predefined attribute values. If no values are defined, the catalog remains
empty. Each definition in a catalog includes an attribute tag (AttributeTag) and the corresponding list of values
(AttributeValue).

DefAttrValuesCatalog statement
The DefAttrValuesCatalog statement is used to define the contents of the Defined Attribute Values catalog. A
MIF file can contain one DefAttrValuesCatalog statement only.
Syntax


Defines an attribute and its corresponding values



Additional statements, as required.
End of DefAttrValuesCatalog

> #

All MIF 8 documents contain a catalog of predefined filters.

DefAttrValues statement
The DefAttrValues statement is used to define a set of attributes with relevant values.
Syntax


Attribute Name



Attribute Value



Additional attribute values, as required.

 #

End of DefAttrValues

ADOBE FRAMEMAKER 60
MIF Reference

AttrCondExprCatalog statement
The AttrCondExprCatalog statement is used to define the contents of the Attribute Expression catalog. A MIF file
can contain one AttrCondExprCatalog statement only.
Syntax



Defines a filter
Additional filters, as required.
End of AttrCondExprCatalog

> #

AttrCondExpr statement
The AttrCondExpr statement is used to define a set of attributes with values.
Syntax


Expression Tag string



Expression string



The string must have one of the following values:

'Active'
'Inactive'
> #

End of AttrCondExpr

Paragraph formats
A paragraph format is defined in a Pgf statement. Paragraph formats can be defined locally or stored in the
Paragraph Catalog, which is defined by a PgfCatalog statement.

PgfCatalog statement
The PgfCatalog statement defines the contents of the Paragraph Catalog. A MIF file can have only one PgfCatalog
statement, which must appear at the top level in the order given in “MIF file layout” on page 52.
Syntax


Defines a paragraph format (see “Pgf statement” on page 61)



Additional statements as needed

…
>

End of PgfCatalog statement

ADOBE FRAMEMAKER 61
MIF Reference

Usage

If you don’t include a PgfCatalog statement, the MIF interpreter uses the paragraph formats defined in NewTemplate. (For information on defaults specified in templates, see page 3.) If you include PgfCatalog, paragraph

formats in the MIF file replace default formats. The MIF interpreter does not add your paragraph format to the
default Paragraph Catalog, although it provides default values for unspecified properties in a paragraph format (see
“Creating and applying paragraph formats” on page 12).

Pgf statement
The Pgf statement defines a paragraph format. Pgf statements can appear in many statements; the statement
descriptions show where Pgf can be used.
The Pgf statement contains substatements that set the properties of a paragraph format. Most of these properties
correspond to those in the Paragraph Designer. Properties can appear in any order within a Pgf statement, with the
following exception: the PgfNumTabs statement must appear before any TabStop statements.
Syntax
Basic properties



Paragraph tag name



Turns on following paragraph tag feature



Tag name of following paragraph



First line left margin, measured from left side of current text column



Used for structured documents only



Used for structured documents only



Left margin, measured from left side of current text column



Right margin, measured from right side of current text column



Alignment within the text column

keyword can be one of:
LeftRight
Left
Center
Right



Direction of the paragraph.

keyword can be one of:
LTR - The direction of the paragraph is set to left to right
RTL - The direction of the paragraph is set to right to left.
INHERITLTR - Derive the direction from the parent object. If it
resolves to left to right, then INHERITLTR is assigned to PgfDir.
INHERITRTL - Derive the direction from the parent object. If it
resolves to right to left, then INHERITRTL is assigned to PgfDir.



Space above paragraph



Space below paragraph

ADOBE FRAMEMAKER 62
MIF Reference



Amount of space between lines in paragraph measured from baseline
to baseline

keyword can be one of:
Fixed (default font size)
Proportional (largest font in line)



Space below each line in a paragraph



Number of tabs in a paragraph
The statement is not required for input files; the MIF interpreter calculates the number of tabs. If it does appear, it must appear before any
TabStop statements; otherwise, the MIF interpreter ignores the tab
settings.



Horizontal position of tab stop



Tab stop alignment

keyword can be one of:
Left
Center
Right
Decimal



Tab stop leader string (for example, ` . ')



Align decimal tab around a character by ASCII value; in UNIX versions,
type man ascii in a UNIX window for a list of characters and their
corresponding ASCII values

>

End of TabStop statement



Additional statements as needed

Default font properties



Default font (see page 66)

Pagination properties



Vertical placement of paragraph in text column

keyword can be one of:
Anywhere
ColumnTop
PageTop
LPageTop
RPageTop



Placement of side heads, run-in heads, and paragraphs that straddle
text columns

keyword can be one of:
Normal
RunIn
SideheadTop
SideheadFirstBaseline
SideheadLastBaseline
Straddle
StraddleNormalOnly
See page 65

ADOBE FRAMEMAKER 63
MIF Reference



Default punctuation for run-in heads



Yes keeps paragraph with previous paragraph



Yes keeps paragraph with next paragraph



Widow/orphan lines

Numbering properties



Yes turns on autonumbering



Autonumber formatting string



Tag from Character Catalog



Yes places number at end of line, instead of beginning

Advanced properties



Yes turns on automatic hyphenation



Maximum number of consecutive lines that can end in a hyphen



Minimum number of letters that must precede hyphen



Minimum number of letters that must follow a hyphen



Minimum length of a hyphenated word



Spread characters to fill line



Minimum word spacing (as a percentage of a standard space in the
paragraph’s default font)



Optimum word spacing (as a percentage of a standard space in the
paragraph’s default font)



Maximum word spacing (as a percentage of a standard space in the
paragraph’s default font)

ADOBE FRAMEMAKER 64
MIF Reference



Language to use for spelling and hyphenation. Note that FrameMaker
writes this statement so MIF files can be opened in older versions of
FrameMaker. However, the language for a paragraph format or character format is now properly specified in the PgfFont and Font
statements (see page 66)

keyword can be one of:
NoLanguage
USEnglish
UKEnglish
German
SwissGerman
French
CanadianFrench
Spanish
Catalan
Italian
Portuguese
Brazilian
Danish
Dutch
Norwegian
Nynorsk
Finnish
Swedish
Japanese
TraditionalChinese
SimplifiedChinese
Korean
Arabic
Hebrew



Name of reference frame (from reference page) to put above paragraph



Used for structured documents only



Used for structured documents only



The background color for the entire box that surrounds a paragraph.



Name of reference frame (from reference page) to put below paragraph



Used for structured documents only



Used for structured documents only

Table cell properties



Vertical alignment for first paragraph in a cell

keyword can be one of:
Top
Middle
Bottom



Cell margins for first paragraph in a cell



Yes means left cell margin is added to TblCellMargins; No
means left cell margin overrides TblCellMargins



Yes means top cell margin is added to TblCellMargins; No
means top cell margin overrides TblCellMargins



Yes means right cell margin is added to TblCellMargins; No
means right cell margin overrides TblCellMargins

ADOBE FRAMEMAKER 65
MIF Reference



Yes means bottom cell margin is added to TblCellMargins; No
means width of bottom cell margin overrides TblCellMargins

Miscellaneous properties



Yes means the paragraph is part of a text inset that obtains its formatting properties from the source document. See page 65



Level at which the paragraph is shown in an outline of Acrobat Bookmarks; 0 indicates that the paragraph does not appear as a bookmark

Usage

Within a PgfCatalog statement, the PgfTag statement assigns a tag to a paragraph format. To apply a paragraph
format from the Paragraph Catalog to the current paragraph, use the PgfTag statement in a ParaLine statement.
If the PgfTag statement within a text flow does not match a format in the Paragraph Catalog, then the Pgf statement
makes changes to the current paragraph format. That is, a Pgf statement after PgfTag specifies how the paragraph
differs from the format in the catalog.
If a document has side heads, indents and tabs are measured from the text column, not the side head. In a table cell,
tab and indent settings are measured from the cell margins, not the cell edges.
Usage of some aspects of the Pgf statement is described in the following sections.
Paragraph placement across text columns and side heads

The PgfPlacementStyle statement specifies the placement of a paragraph across text columns and side heads in a
text frame:

•
•

If a paragraph spans across all columns and side heads, the PgfPlacementStyle statement is set to Straddle.
If a paragraph spans across all columns, but not across the side heads in a text frame, the PgfPlacementStyle
statement is set to StraddleNormal.

Locked paragraphs and text insets

The PgfLocked statement does not correspond to any setting in the Paragraph Designer. The statement is used for
text insets that retain formatting information from the source document.
If the  statement appears in a specific paragraph, that paragraph is part of a text inset that retains
formatting information from the source document. The paragraph is not affected by global formatting performed
on the document.
If the  statement appears in a specific paragraph, that paragraph is not part of a text inset, or is part
of a text inset that reads formatting information from the current document. The paragraph is affected by global
formatting performed on the document.
For more information about text insets, see “Text insets (text imported by reference)” on page 137.

Character formats
A character format is defined by a PgfFont or a Font statement. Character formats can be defined locally or they
can be stored in the Character Catalog, which is defined by a FontCatalog statement.

ADOBE FRAMEMAKER 66
MIF Reference

FontCatalog statement
The FontCatalog statement defines the contents of the Character Catalog. A document can have only one
FontCatalog statement, which must appear at the top level in the order given in “MIF file layout” on page 52.
Syntax


Defines a character format (see “PgfFont and Font statements,” next)



Additional statements as needed

…
End of FontCatalog statement

>

PgfFont and Font statements
The PgfFont and Font statements both define character formats. The PgfFont statement must appear in a Pgf
statement. The Font statement must appear in a FontCatalog, Para, or TextLine statement.
New statements have been added to the PgfFont and Font statements to express combined fonts in FrameMaker
documents. For more information, see “Combined Fonts” on page 213.
Syntax


Character format tag name

Font name



Name of font family



Name of angle, such as Oblique



Name of weight, such as Bold



Name of variation, such as Narrow



Name of font when sent to PostScript printer (see “Font name” on page 69)



Platform-specific font name, only read by the Windows version (see page 70)

ADOBE FRAMEMAKER 67
MIF Reference

Font language



Language to use for spelling and hyphenation

keyword can be one of:
NoLanguage
USEnglish
UKEnglish
German
SwissGerman
French
CanadianFrench
Spanish
Catalan
Italian
Portuguese
Brazilian
Danish
Dutch
Norwegian
Nynorsk
Finnish
Swedish
Japanese
TraditionalChinese
SimplifiedChinese
Korean
Arabic
Hebrew
Font encoding



Specifies the encoding for this font. This is to specify the encoding for a
double-byte font. If not present, the default is Roman.

keyword can be one of these:
FrameRoman
JISX0208.ShiftJIS
BIG5
GB2312-80.EUC
KSC5601-1992
Font size, color, and width



Size, in points only (or in Q on a Japanese system)



Font color (see “ColorCatalog statement” on page 83)



Font color; no longer used, but written out by FrameMaker for backwardcompatibility (see “Color statements” on page 262)



The amount to stretch or compress the font, where 100% means no change

 Background color of the paragraph text.
Font style



Turns on underlining and specifies underlining style

keyword can be one of:
FNoUnderlining
FSingle
FDouble
FNumeric

ADOBE FRAMEMAKER 68
MIF Reference



Turns on overline style



Turns on strikethrough style



Turns on the change bar



Specifies subscript and superscript characters; font size and position relative
to baseline determined by Document substatements (see page 93)

keyword can be one of:
FNormal
FSuperscript
FSubscript



Turns on outline style



Turns on shadow style



Turns on pair kerning



Applies capitalization style to string

keyword can be one of:
FAsTyped
FSmallCaps
FLowercase
FUppercase
Kerning information



Horizontal kern value for manual kerning expressed as percentage of an em;
positive value moves characters right and negative value moves characters
left



Vertical kern value for manual kerning expressed as percentage of an em; positive value moves characters down and negative value moves characters up



Spread value for space between characters expressed as percentage of an em;
positive value increases the space and negative value decreases the space



Yes turns on Tsume (variable width rendering) for Asian characters

Filter statements

Valid when text properties are applied to a file imported into FrameMaker



Used only by filters



Used only by filters



Used only by filters

Miscellaneous information



Yes means the font is part of a text inset that obtains its formatting properties
from the source document

>

End of PgfFont or Font statement

Usage

Use PgfFont within a Pgf statement to override the default font for the paragraph. Use Font within a FontCatalog
statement to define a font or in a Para statement to override the default character format. Substatements in the Font
and PgfFont statements are optional. Like the Pgf substatements, Font substatements reset the current font.

ADOBE FRAMEMAKER 69
MIF Reference

When the MIF interpreter reads a Font statement, it continues using the character format properties until it either
reads another Font statement or reads the end of the Para statement. You can set the character format back to its
previous state by providing an empty FTag statement. A Font statement that does not supply all property substatements inherits the current font state for those properties not supplied.
For more information about creating and applying character formats in a MIF file, see “Creating and applying
character formats” on page 23. For more information about character formats in general, see your user’s manual.
Usage of some aspects of the PgfFont and Font statements is described in the following sections.
Locked fonts and text insets

The FLocked statement does not correspond to any setting in the Character Designer. The statement is used for text
insets that retain formatting information from the source document.
If the  statement appears in a specific character format, that character format is part of a text inset
that retains formatting information from the source document. The character format is not affected by global
formatting performed on the document.
If the  statement appears in a specific character format, either that character format is not part of a
text inset, or that character format is part of a text inset that reads formatting information from the current
document. The character format is affected by global formatting performed on the document.
For more information about text insets, see “Text insets (text imported by reference)” on page 137.
Font name

When a PgfFont or Font statement includes all of the family, angle, weight, and variation properties, FrameMaker
identifies the font in one or more of the following ways:

•
•

The statement FPlatformName specifies a font name that uniquely identifies the font on a specific platform.

•

The statement FPostScriptName specifies the name given to a font when it is sent to a PostScript printer (specifically, the name that would be passed to the PostScript FindFont operator before any font coordination operations). The PostScript name is unique for all PostScript fonts, but may not be available for fonts that have no
PostScript version.

The statements FFamily, FAngle, FWeight, and FVar specify how FrameMaker stores font information internally.

For complete font specifications, FrameMaker always writes the FFamily, FAngle, FWeight, FVar, and FPostScriptName statements. In addition, the Windows version of FrameMaker also writes the FPlatformName
statement. A UNIX version of FrameMaker ignores FPlatformName.
When FrameMaker reads a MIF file that includes more than one way of identifying a font, it checks the font name
in the following order:
1

Platform name

2

Combination of family, angle, weight, and variation properties

3

PostScript name

If you are writing filters to generate MIF, you do not need to use all three methods. You should always specify the
PostScript name, if it is available. You should use the platform name only if your filter will be run on a specific
platform. A filter running on a specific platform can easily find and write out the platform name, but the name
cannot be used on other platforms.
Font encoding

The  statement specifies which encoding to use for a font. The default is Roman, or standard 7-bit
encoding. If this statement is not included for a font, 7-bit encoding is assumed.

ADOBE FRAMEMAKER 70
MIF Reference

This statement takes precedence over all other font attributes. For example, if the document includes a font with
, but that font family is not available on the user’s system, then the text will
appear in some other font on the system that uses Japanese encoding. If there is no Japanese encoded font on the
system, the text appears in Roman encoding and the user will see garbled characters.
FPlatformName statement

The  statement provides a platform-specific ASCII string name that uniquely identifies
a font for a particular platform. The string value consists of several fields separated by a period.
Windows: The Windows platform name has the following syntax:

W

Platform designator

FaceName

Windows face name (for more information, see your Windows documentation)

ItalicFlag

Whether font is italic; use one of the following flags:

I (Italic)
R (Regular)

Weight

Weight classification, for example 400 (regular) or 700 (bold)

Variation

Optional variation, for example Narrow

The following statements are valid representations of the Windows font Helvetica Narrow Bold Oblique:



Object styles
An object style is defined by a Style statement. Object styles can be defined locally or they can be stored in the
Object Style catalog, which is defined by a StyleCatalog statement.

StyleCatalog statement
The StyleCatalog statement defines the object styles. A document can have only one StyleCatalog statement,
which must appear at the top level in the order given in “MIF file layout” on page 52.
Syntax


Defines a character format (see “PgfFont and Font statements,” next)
End of StyleCatalog statement

Style statement
The Style statement defines the object style properties. A document can have only one StyleCatalog statement,
which must appear at the top level in the order given in “MIF file layout” on page 52.

ADOBE FRAMEMAKER 71
MIF Reference

Syntax