Macromedia FrameMaker - 9.0 User Guide

ADOBE® FRAMEMAKER® 9
MIF REFERENCE
© 2008 Adobe Systems Incorporated. All rights reserved.
Adobe® FrameMaker® 9 MIF Reference
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 trans­mitted, 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.
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, and PostScript are either registered trademarks or trademarks of Adobe Systems Incorporated in the United States and/or other countries.
Microsoft and Windows are either registered trademarks or trademarks of Microsoft Corporation in the United States and/or other countries. UNIX is a trademark in the United States and other countries, licensed exclusively through X/Open Company, Ltd. Sun is a trademark or registered trademark of Sun Microsystems, Inc. in the United States and other countries. Palatino is a trademark of Heidelberger Druckmaschinen AG exclusively licensed through Linotype Library GmbH, and may be registered in certain jurisdic­tions. All other trademarks are the property of their respective owners.
This work is licensed under the Creative Commons Attribution Non-Commercial 3.0 License. To view a copy of this license, visit http://creativecommons.org/licenses/by­nc/3.0/us/
This product contains either BSAFE 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 PANTONE-identified standards. Consult current PANTONE Color Publi­cations 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 FrameMaker. PAN TONE C olor Data a nd /or So ft ware shall not be copied onto another disk or into memory unless as part of the execution of Adobe FrameMaker 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 Corpo­ration. All Rights Reserved.
This product includes software developed by the Apache Software Foundation (http://www.apache.org/).
Portions contributed by Gilles Vollant.
Certain Spelling portions of this product is based on Proximity Linguistic Technology. ©Copyright 1990 Merriam-Webster 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 Merriam-Webster 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 Elect ronic 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 D ivision of Franklin El ectronic 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 o 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 D ivision of Franklin El ectronic 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 E lectronic 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.
Notic e to U.S. gov ernment end user s. The so ftware a nd document ation are “Comm ercial Items,” as that te rm is de fined 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.
f Franklin Electronic Publishers, Inc.

Contents

Chapter 1: Introduction
Why use MIF? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Using this manual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Style conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
Overview of MIF statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
MIF statement syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Specifying page layout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Creating markers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Creating cross-references . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Creating variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
Creating conditional text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
Creating filters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
Including template files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
Setting View Only document options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Applications of MIF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Debugging MIF files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
Other application tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
Where to go from here . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
iii
Chapter 3: MIF Document Statements
MIF file layout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
MIFFile statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
Control statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
Macro statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
Track edited text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Conditional text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Boolean expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
Filter By Attribute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
Paragraph formats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
Character formats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
Color . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
Cross-references . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
Global document properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
Pages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
Graphic objects and graphic frames . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
Text flows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
Text insets (text imported by reference) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
Chapter 4: MIF Book File Statements
MIF book file overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
MIF book file identification line . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
Book statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
Chapter 5: MIF Statements for Structured Documents and Books
Structural element definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
Attribute definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
Format rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
Format change lists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
Elements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
Filter By Attribute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
XML data for structured documents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
Preference settings for structured documents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
Text in structured documents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
Structured book statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
MIF Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
iv
Chapter 6: MIF Equation Statements
Document statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
Math statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
MathFullForm statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
Chapter 7: MIF Asian Text Processing Statements
Asian Character Encoding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
Combined Fonts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
Kumihan Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
Rubi text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
Chapter 8: Examples
Text example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
Bar chart example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
Pie chart example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
Custom dashed lines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
Table examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226
Database publishing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
Chapter 9: MIF Messages
General form for MIF messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236
List of MIF messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236
Chapter 10: MIF Compatibility
MIF syntax changes in FrameMaker 8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
Changes between version 6.0 and 7.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240
Changes between version 5.5 and 6.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241
Changes between version 5 and 5.5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242
Changes between versions 4 and 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243
Changes between versions 3 and 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
Chapter 11: Facet Formats for Graphics
Facets for imported graphics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251
Basic facet format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252
Graphic insets (UNIX versions) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253
General rules for reading and writing facets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
Chapter 12: EPSI Facet Format
Specification of an EPSI facet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259
Example of an EPSI facet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259
Chapter 13: FrameImage Facet Format
Specification of a FrameImage facet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261
Specification of FrameImage data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261
Differences between monochrome and color . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264
Sample unencoded FrameImage facet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265
Sample encoded FrameImage facet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266
v
Chapter 14: FrameVector Facet Format
Specification of a FrameVector facet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268
Specification of FrameVector data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268
Sample FrameVector facet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284

Chapter 1: Introduction

1
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® native representation of a FrameMaker document, it allows FrameMaker and other applications to exchange infor­mation while preserving graphics, document content, and format.
understands. Because MIF is an alter-

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 into 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 version 7.0 of 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 manip­ulate 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 9
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:
<PgfTag
Yo u r ep la ce
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.
.
tagstring
tagstring
>
with the tag of a paragraph format.
2

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:
<Rectangle # Type of graphic object
# Position and size: left offset, top offset,
<ShapeRect 3.0" 1.5" 2.0" 1.0">
>
# width, and height
ADOBE FRAMEMAKER 9
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.
MIF Reference

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
plate
. You can modify these default objects and document formats by creating your own version of ASCIITem-
plate
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.
ASCIITemplate and NewTem-
3

Current state and inheritance

FrameMaker has a MIF interpreter that reads and parses MIF files. When you open or import a MIF file, the inter­preter 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 9
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 deter­mined 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.
4

MIF statement syntax

The statement descriptions in this manual use the following conventions to describe syntax:
<
token data
token data
descriptions later in this manual, and Markup statements are always delimited by angle brackets (< > ); macro statements are not. For the syntax of macro statements, see “Macro statements” on page 56.
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, statement, the MIF interpreter ignores the white space characters between the left angle bracket (<) and the first character of the token, 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.
>
where
token
represents one of the MIF statement names (such as Pgf) listed in the MIF statement
data
represents one or more numbers, a string, a token, or nested statements.
<Un its Uin>
< Units Uin >), it interprets the white space as token delimiters. When parsing the example
Units. After reading the token, the MIF interpreter checks its validity. If the token is valid,
ADOBE FRAMEMAKER 9
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:
<Document
<DStartPage 1>
>
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
5
string
tagstring
pathname
boolean
integer
ID
dimension
degrees
percentage
metric
W H
Left quotation mark ( ` ), zero or more standard ASCII characters (in FrameMaker 9, you can also include UTF-8 characters), and a straight quotation mark ( ' ).
Example: `ab cdef ghij'
A string that names a format tag, such as a paragraph format tag. A unique; case is significant. A statement that refers to a
tagstring
acter set.
A string specifying a pathname (see “Device-independent pathnames” on page 7).
A value of either Yes or No. Case is significant.
Integer whose range depends on the associated statement name.
Integer that specifies a unique ID. An ID can be any positive integer between 1 and 65535, inclu­sive. A statement that refers to an ID must exactly match the ID.
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 (see “Units statement” on page 54).
A decimal number signifying an angle value in degrees. You cannot specify units; any number is interpreted as a degree value.
A decimal number signifying a percentage value. You cannot specify units; any number is inter­preted as a percentage value.
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.
Pair of dimensions representing width and height. You can specify the units.
value. A
tagstring
value can include any character from the FrameMaker char-
tagstring
tagstring
must exactly match the
value must be
X Y
L T R B
L T W H
Coordinates of a point. Coordinates originate at the u pp er- le ft c or ner of t he pag e o r gr aph ic fra me. You can specify the units.
Coordinates representing left, top, right, and bottom indents. You can specify the units.
Coordinates representing the left and top indents plus the dimensions representing th e width and height of an object. You can specify the units.
This term or symbol Means
ADOBE FRAMEMAKER 9
MIF Reference
6
X Y W H
keyword
<token…>
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.
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
pica
didot
cicero
cm or centimeter
pc or pica
dd or didot
cc or cicero
1 inch is 2.54 cm
12 points
0.01483 inches
12 didots
Dimension data types can mix different units of measurement. For example, the statement
> can be written as either of the following:
B
<CellMargins 6 pt 18 pt 6 pt 24 pt> <CellMargins 6 pt .25" .5 pica 2 pica>
<CellMargins
L T R
Math values
The MathFullForm statement uses
metric
inch). The
type is a 32-bit fixed-point number. The 16 most significant bits of a
metric
values in formatting codes. A
metric
unit represents one point (1/72
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 9
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 (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
>\>
0x60) and end with a straight quotation mark
7
'
`\Q
\\\
nonstandard ASCII \x
\q
nn
Note: The \xnn character is supported only for legacy MIF files.
All FrameMaker characters with values above the standard ASCII range (greater than
\x
nn
string by using
notation, where nn represents the hexadecimal code for the character. The hexadecimal digits
\x7f) are represented in a
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': > \Ø¿!
You ca n a ls o us e th e
Char statement to include certain predefined special characters in a ParaLine statement (see
`Some \Qsymbols\q: \> \\Ø¿!'
“Char statement” on page 125).

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:
`<code\>name<code\>name<code\>name…'
where
name
is the name of a component in the file’s path and
The following table lists codes and their meanings.
code
identifies the role of the component in the path.
Code Meaning
r
v
h
c
Root of UNIX file tree (UNIX only)
Volume or drive (Windows)
Host (Apollo only)
Component
Code Meaning
ADOBE FRAMEMAKER 9
MIF Reference
8
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
Windows
`<r\><c\>MyDirectory<c\>MySubdirectory<c\>Filename'
`<v\>c:<c\>mydir<c\>subdir<c\>filename'
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:
`<c\>Filename '

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
9
UNIX $FMHOME/fminit/
as usenglish
Windows The MIF directory under the samples directory
language
/Samples/MIF, where
language
is the language in use, such

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 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 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
.mif file suffix and replace it with a different suffix (or no
.mif to
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 pop­up menu. Give the saved file the suffix to place carriage returns. For a MIF file, choose the Only between Paragraphs option.
.mif. When you save a document as Text Only, FrameMaker asks you where
ADOBE FRAMEMAKER 9
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 220).
When you import or include MIF files, make sure that object IDs are unique in the final document and that refer­ences to object IDs are correct (see “Generic object statements” on page 105). 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 ( 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.
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.
Te st o n e o b j ec t at a ti m e.
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.
Use the default properties provided by FrameMaker.
If you are not concerned with testing certain document components, let FrameMaker provide a set of default
document objects and formats.
`'). To enter a left quotation mark, type Control-`. To enter a
10

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)
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
Tab le s
Pages
Tex t flo ws
ADOBE FRAMEMAKER 9
MIF Reference
11
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:
<MIFFile 8.00> # The only required statement <Para # Begin a paragraph
<ParaLine # Begin a line within the paragraph
<String `Hello World'># 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 9
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 inter­preter 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, and the space before and after a paragraph. 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.
12

Creating a paragraph

In a MIF file, paragraphs are defined by a Para statement. A Para statement contains one or more ParaLine state­ments that contain the lines in a paragraph; the actual text of the line is enclosed in one or more
<Para # Begin a paragraph
<ParaLine # Begin a line within the paragraph
<String `Hello World'># The actual text of this document
> # End of ParaLine statement
> # End of Para statement
String statements:
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 paragraph text into a series of break up text lines within a
String statements contained in one ParaLine statement. It doesn’t matter how you
Para statement; the MIF interpreter automatically wraps lines when it reads the MIF file.
Para statement. Break the
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
The
Pgf statement contains a group of substatements that describe all of a paragraph’s properties. It has the
following syntax:
Pgf statement.
<Pgf
<
property value
<
property value
...
>
ADOBE FRAMEMAKER 9
> >
MIF Reference
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.
13
Basic properties
The following table shows the corresponding MIF statements:
In MIF file In Paragraph Designer
<PgfTag `Numbered'>
<PgfFIndent 0.0">
<PgfLIndent 0.25">
<PgfRIndent 0.0">
<PgfAlignment Left >
<PgfSpBefore 0.0 pt>
<PgfSpAfter 0.0 pt>
<PgfLeading 2.0 pt>
Paragraph Tag
First Indent
Left Indent
Right Indent
Alignment
Space Above ¶
Space Below ¶
Line Spacing (leading is added to font size)
In MIF file In Paragraph Designer
ADOBE FRAMEMAKER 9
MIF Reference
14
<PgfLineSpacing Fixed>
<PgfNumTabs 1>
<TabStop
<TSX 0.25">
<TSType Left >
<TSLeaderStr `'>
Line Spacing (fixed)
Number of tab stops
Begin definition of tab
Tab position
Tab type
Tab leader (none)
> # end of TabStop
<PgfUseNextTag No >
<PgfNextTag `'>
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
<PgfFont
<FFamily `Times'>
<FSize 12.0 pt>
Family
Size
In MIF file In Paragraph Designer
<FEncoding>
ADOBE FRAMEMAKER 9
MIF Reference
15
<FAngle `Regular'>
<FWeight `Regular'>
<FLanguage>
<FVar `Regular'>
<FColor `Black'>
<FDW 0.0 pt>
<FStretch 100%>
<FUnderlining NoUnderlining >
<FOverline No >
<FStrike No >
<FChangeBar No >
<FPosition FNormal >
<FCase FAsTyped >
<FPairKern Yes >
<FTsume No>
> # end of PgfFont
Angle
Weig ht
Language
Variation
Color
Spread
Stretch
Underline
Overline
Strikethrough
Change Bar
Superscript/Subscript
Capitalization
Pair Kern
Tsume (Asian systems only)
The Pagination properties are defined as follows in the Paragraph Designer.
ADOBE FRAMEMAKER 9
MIF Reference
16
Pagination properties
The following table shows the corresponding MIF statements:
In MIF file In Paragraph Designer
<PgfPlacement Anywhere >
<PgfWithNext No >
<PgfWithPrev No >
<PgfBlockSize 1>
<PgfPlacementStyle Normal >
<PgfRunInDefaultPunct `. '>
Start
Keep With Next Pgf
Keep With Previous Pgf
Widow/Orphan Lines
Format (paragraph placement)
Run-in Head Default Punctuation (a period followed by an em space)
The Numbering properties are defined as follows in the Paragraph Designer.
ADOBE FRAMEMAKER 9
MIF Reference
17
Numbering properties
The following table shows the corresponding MIF statements:
In MIF file In Paragraph Designer
<PgfAutoNum Yes >
<PgfNumFormat `<n+\>.\\t' >
<PgfNumberFont `' >
<PgfNumAtEnd No >
Turn on Autonumber
Autonumber Format (a number followed by a period and a tab)
Character Format (Default ¶ Format)
Position (Start of Paragraph)
The Advanced properties are defined as follows in the Paragraph Designer.
ADOBE FRAMEMAKER 9
MIF Reference
18
Advanced properties
The following table shows the corresponding MIF statements:
In MIF file In Paragraph Designer
<PgfHyphenate Yes >
<HyphenMaxLines 2>
<HyphenMinWord 5>
<HyphenMinPrefix 3>
<HyphenMinSuffix 3>
<PgfMinWordSpace 90>
<PgfOptWordSpace 100>
<PgfMaxWordSpace 110>
<PgfLetterSpace Yes >
<PgfTopSeparator `'>
<PgfBotSeparator `'>
Automatic Hyphenation (on)
Max. # Adjacent
Shortest Word
Shortest Prefix
Shortest Suffix
Minimum Word Spacing
Optimum Word Spacing
Maximum Word Spacing
Allow Automatic Letter Spacing
Frame Above ¶
Frame Below ¶
The Asian properties are defined as follows in the Paragraph Designer.
ADOBE FRAMEMAKER 9
MIF Reference
19
Asian properties
The following table shows the corresponding MIF statements:
In MIF file In Paragraph Designer
<PgfMinJRomanLetterSpace
<PgfOptJRomanLetterSpace
<PgfMaxJRomanLetterSpace
<PgfMinJLetterSpace
<PgfOptJLetterSpace
<PgfMaxJLetterSpace
<PgfYakumonoType
percentage
percentage
percentage
string
>
percentage
percentage
percentage
>
>
>
>
>
>
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
The Table Cell properties are defined as follows in the Paragraph Designer.
ADOBE FRAMEMAKER 9
MIF Reference
20
Table cell properties
The following table shows the corresponding MIF statements:
In MIF file In Paragraph Designer
<PgfCellAlignment Top >
<PgfCellMargins 0.0 pt 0.0 pt 0.0 pt 0.0 pt>
<PgfCellTMarginFixed No >
<PgfCellBMarginFixed No >
<PgfCellLMarginFixed No >
<PgfCellRMarginFixed No >
Cell Vertical Alignment
Cell Margins
Top
Bottom
Left
Right

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
<PgfCatalog
<Pgf…> # A paragraph format description <Pgf…> # 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:
<MIFFile 8.00> # Hand generated
Pgf statements. A PgfCatalog statement looks like this:
ADOBE FRAMEMAKER 9
<PgfCatalog
<Pgf
<PgfTag `1Heading'> <PgfUseNextTag Yes > <PgfNextTag `Body'> <PgfAlignment Left > <PgfFIndent 0.0"> <PgfLIndent 0.0"> <PgfRIndent 0.0"> ...
> # end of Pgf
> # end of PgfCatalog
MIF Reference
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.
Pgf statement provides only the name of a paragraph format, the MIF interpreter supplies default values for the
If a 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 the following statements:
<Para
<PgfTag `1Heading'> <ParaLine
> # 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 alignment:
<Para
<PgfTag `1Heading'> <Pgf
> # end of Pgf <ParaLine
> # end of ParaLine
> # end of Para
To locally define a paragraph format, include a complete Pgf statement within the Para statement:
<Para
<Pgf
> # end of Pgf <ParaLine
Para statement. For example, to apply the previously defined format 1Heading to a paragraph, use
<String `This line has the format called 1Heading.'>
Para statement. The following MIF example applies the paragraph format 1Heading, then changes the
<PgfAlignment Center>
<String `This line is centered.'>
<PgfTag `2Heading'> <PgfUseNextTag Yes > <PgfNextTag `Body'> <PgfAlignment Left > <PgfFIndent 0.0"> <PgfLIndent 0.0"> ...
21
ADOBE FRAMEMAKER 9
<String `A locally formatted heading'>
> # end of ParaLine
> # end of Para
MIF Reference
For a complete description of Pgf property statements, see page 61.

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 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:
<Para
<Pgf
<PgfTag `Body'> <PgfFont
<FWeight `Bold'>
> # end of PgfFont > # end of Pgf <ParaLine
<String `First paragraph in document.'> > # end of ParaLine
> # end of Para <Para
<ParaLine
<String `Second paragraph in document.'> > # 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
Para statement:
<Para
<Pgf
<PgfFont
<FWeight `Regular'>
> # end of PgfFont > # end of Pgf <ParaLine
<String `Second paragraph in document.'> > # 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.
Pgf statement. Because
Pgf statement in the second
22
ADOBE FRAMEMAKER 9
MIF Reference

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.
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 selec­tions. 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 named character formats in a list of
<FontCatalog
<Font...> # Describes a character format <Font...> # Describes a character format
> # end of FontCatalog
Font statements. A FontCatalog statement looks like this:
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
To apply a predefined character format to text, use the
<MIFFile 8.00> # Hand generated <FontCatalog
<Font
<FTag `Emphasis'>
<FAngle `Italic'> > # end of Font
> # end of FontCatalog <Para
<PgfTag `Body'> <ParaLine
<String `You can format characters within a paragraph by '>
<Font
<FTag `Emphasis'> > # end of Font <String `applying'> <Font
<FTag `'> > # end of Font <String ` a character format from the character catalog.'>
> # end of ParaLine
> # end of Para
Remember to include a second Font statement to end the scope of the applied character format.
FontCatalog statement. The FontCatalog statement contains
Font statement.
FTag statement:
23
ADOBE FRAMEMAKER 9
Body rows
Footing row
Table 1: Coffee Inventory
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
Title
MIF Reference
To locally define a character format, use a complete Font statement:
<Para
<PgfTag `Body'> <ParaLine
<String `You can also format characters by '> <Font
<FTag `Emphasis'>
…character property statements
> # end of Font <String `applying'> <Font
<FTag `'> > # end of Font <String ` a locally defined character format.'>
> # 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
See the sample file
charfmt.mif for examples of using character formats.
Para statement.
24

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.
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.
ADOBE FRAMEMAKER 9
MIF Reference
Indicate the position of the table in the text flow by using an ATbl statement. The ATbl statement is the place-
holder, 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.

Creating a table instance

All table instances in a document are contained in a Tbls statement. The Tbls statement contains a list of Tbl state­ments, one for each table instance. A document can have only one the table anchors in the text flow.
Tbl statement contains the actual contents of the table cells in a list of MIF substatements. Like other MIF state-
The ments, this list can be quite long. The following is a template for a
<Tbl
<TblID…> # A unique ID for the table <TblFormat…> # The table format <TblNumColumns…> # Number of columns in this table--required <TblColumnWidth…> # Column width, one for each column <TblH # The heading; omit if no heading
<Row # One Row statement for each row
<Cell…> # One statement for each cell in the row > # end of Row
<TblBody # The body of the table
<Row…> # One for each row in body
> # end of TblBody <TblF # The footer; omit if no footer
<Row…> # 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 ca n u se t he
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.
TblNumColumns statement specifies the number of columns in the table instance. It is required in every table.
The
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:
Tbls statement, which must occur before any of
Tbl statement:
25
Coffee Price per Bag
Brazil Santos $455.00
You can use the following MIF statements to create this simple table:
<MIFFile 8.00> <Tbls
<Tbl
<TblID 1> # ID for this table <TblTag `Format A'> # Applies format from Table Catalog <TblNumColumns 2> # Number of columns in this table <TblColumnWidth 2.0"> # Width of first column <TblColumnWidth 1.5"> # Width of second column
ADOBE FRAMEMAKER 9
MIF Reference
<TblH # Begin table heading
<Row # Begin row
<Cell # First cell in row
<CellContent
<Para # Cells can contain paragraphs
<PgfTag `CellHeading'># Applies format from Paragraph Catalog <ParaLine
<String `Coffee'># Text in this cell
>
> # end of Para
> # end of CellContent > # end of Cell <Cell # Second cell in row
<CellContent
<Para
<PgfTag `CellHeading'>
<ParaLine <String `Price per Bag'>
>
> # end of Para
> # end of CellContent > # end of Cell
> # end of Row
> # end of TblH
<TblBody # Table body
<Row # Begin row
<Cell # First cell in row
<CellContent
<Para
<PgfTag `CellBody'> <ParaLine
<String `Brazil Santos'>
>
> # end of Para > # end of CellContent
> # end of Cell <Cell # Second cell in row
<CellContent
<Para
<PgfTag `CellBody'> <ParaLine
<String `$455.00'>
>
> # 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.
26

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 previous example, you would add the following statements to the minimal MIF file:
TblID statement in the table instance. For example, to insert the table defined in the
ADOBE FRAMEMAKER 9
<Para
<ParaLine
<String `Coffee prices for January'> <ATbl 1> # Matches table ID in Tbl statement
> # end of ParaLine > # end of Para
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:
<Para
<ParaLine
<String `Coffee prices '> <ATbl 1> <String `for January'>
> # 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 multiple
ATbl statements that refer to the same table ID.
ATbl statement and the table instance does not appear in the document. You cannot use
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 state-
ments, see “Graphic objects and graphic frames” on page 104.
27
Rotated cells
A table can have rotated cells and straddle cells. The following table includes rotated cells in the heading row:
Coffee
Price
Brazil Santos $455.00
In a MIF file, a cell that is rotated simply includes a
<Cell
<CellAngle 270>
<CellContent…> > # end of Cell
CellAngle statement that specifies the angle of rotation:
Cells can only be rotated by 90, 180, or 270 degrees. Cells are rotated clockwise.
ADOBE FRAMEMAKER 9
MIF Reference
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
28
The MIF code for the straddle cell includes a cell crosses. The contents of the straddle cell appear in the first of the straddle columns; the subsequent
CellColumns statement that specifies the number of columns that the
Cell state-
ments for the row must appear even if they are empty.
<Row
<Cell
<CellColumns 2> # Number of straddle columns. <CellContent # Content is in the first cell.
<Para
<PgfTag `CellHeading'> <ParaLine
<String `Brazilian Coffee'>
>
> # end of Para
> # end of CellContent > # end of Cell <Cell # Second cell appears, even though
<CellContent # it is empty.
<Para
<PgfTag `CellHeading'> <ParaLine>
> # 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
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 number and widths of columns
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
Coffee Price per Bag
Colombian $474.35
The following MIF statements define this table format:
<TblFormat
<TblTag `Coffee Table'>
# Every table must have at least one TblColumn
# statement.
<TblColumn
<TblColumnNum 0> # Columns are numbered from 0.
<TblColumnWidth 2.0"> # Width of first column.
> # end of TblColumn <TblColumn
<TblColumnNum 1> # Second column.
<TblColumnWidth 1.5"> # Width of second column. > # end of TblColumn <TblCellMargins 6.0 pt 6.0 pt 6.0 pt 4.0 pt> <TblLIndent 0.0"> # These are exactly like paragraph <TblRIndent 0.0"> # format properties. <TblAlignment Center > <TblPlacement Anywhere > <TblSpBefore 12.0 pt> <TblSpAfter 12.0 pt> <TblBlockSize 1> <TblHFFill 15> # No fill for heading row. <TblHFColor `Black'> <TblBodyFill 5> # Use 10% gray fill for main body rows. <TblBodyColor `Black'> <TblShadeByColumn No > # Shade by row, not by column. <TblShadePeriod 1> # Shade every other row. <TblXFill 15> # No fill for alternate rows. <TblXColor `Black'> # Color for alternate rows. <TblAltShadePeriod 1> <TblLRuling `Thin'> # Use thin left outside rule. <TblBRuling `Thin'> # Use thin bottom outside rule. <TblRRuling `Thin'> # Use thin right outside rule. <TblTRuling `Medium'> # Use medium top outside rule. <TblColumnRuling `Thin'> # Use thin rules between columns. <TblXColumnRuling `Thin'> <TblBodyRowRuling `Thin'> # Use thin rules between rows. <TblXRowRuling `Thin'> <TblHFRowRuling `'> # No rules between heading rows. <TblSeparatorRuling `Medium'> # Use medium rule after heading row. <TblXColumnNum 1> <TblRulingPeriod 4> <TblLastBRuling No > <TblTitlePlacement InHeader> # Place title above table. <TblTitlePgf1 # Paragraph format for first
<PgfTag `TableTitle'> # paragraph in title. > # end of TblTitlePgf1 <TblTitleGap 6.0 pt> # Gap between title and table. <TblInitNumColumns 2> # Initial number of rows and <TblInitNumHRows 1> # columns for new tables with <TblInitNumBodyRows 4> # this format. <TblInitNumFRows 0> <TblNumByColumn No >
> # end of TblFormat
ADOBE FRAMEMAKER 9
MIF Reference
29
ADOBE FRAMEMAKER 9
MIF Reference
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 that includes a
TblColumn statement or it can include a local TblFormat statement that supplies the TblColumn
TblColumn statement. A table can use a format from the Table Catalog
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.
The
TblCatalog statement contains one TblFormat statement for each format, as shown in the following template:
<TblCatalog
<TblFormat…>
<TblFormat…> > # 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 own, substatements that refer to ruling styles, such as the style from the Ruling Catalog. See “RulingCatalog statement” on page 79.
RulingCatalog statement. Whether you use the default ruling styles or create your
TblLRuling statement, must use the name of a ruling
30

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
<Tbls
<Tbl
<TblID 1>
<TblTag `Format A'> # Tag of format in Table Catalog
<TblNumColumns 1>
<TblBody
...
> # end of TblBody > # end of Tbl
> # end of Tbls
To locally define a table format, use a complete TblFormat statement:
<Tbls <Tbl <TblID 1> <TblFormat <TblTag ` '>
<TblColumn <TblColumnNum 0> <TblColumnWidth 1.0"> > # end of TblColumn
…table property statements
TblTag statement within the Tbl statement:
# Every table must have one TblColumn statement.
ADOBE FRAMEMAKER 9
MIF Reference
> # 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:
<TblFormat
<TblTag `Coffee Table'> <TblColumn
<TblColumnNum 0>
<TblColumnWidth 1.0">
<TblColumnBody
<PgfTag `Description'>
> # end of TblColumnBody > # end of TblColumn
> # end of TblFormat
31

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.
ADOBE FRAMEMAKER 9
Untagged background text frame
Tagged template text frame
On body pages, you type in a column of a tagged text frame.
Untagged background text frame
Master page Body page
MIF Reference
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.
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 number of columns in the text frame are specified by substatements under the
A text flow describes the text contained in one or more text frames. In MIF, a text flow is represented by a statement. The actual text of the document is specified by substatements under the
If the text flow has the autoconnect property (if the text flow uses the MIF statement
TextRect statement. The dimensions of the text frame and the
TextRect statement.
TextFlow
TextFlow statement.
<TFAutoConnect Yes>), the
text flow ru ns throu gh a ser ies of text fr ames; whe n you fil l up one text frame, text continue s int o the n ext te xt fra me. 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.
32

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 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
<MIFFile 8.00> # Hand generated <TextFlow # All document text is in this text flow.
<TFTag `A'> # Make this a tagged text flow. <TFAutoConnect Yes> # Automatically connect text frames. <Para
<ParaLine
> # end of ParaLine > # end of Para
> # end of TextFlow
A text flow must be tagged, and it must include <TFAutoConnect Yes>; otherwise, when the user adds text to the document, FrameMaker won’t create additional pages and text frames to hold the added text.
TextFlow statement. When reading the file, the MIF interpreter creates default master pages
defpage.mif:
<String `This paragraph appears on a body page within a'> <String ` text flow tagged A.'>
# End of MIFFile
ADOBE FRAMEMAKER 9
MIF Reference

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 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
<MIFFile 8.00> # Hand generated <Document
<DPageSize 7.5" 9.0"> # Set the page size. <DMargins 2" 1" .5" .5"> # Set the margins. <DColumns 1> # Set the number of columns in the default
<DTwoSides No> # Set document to single-sided.
> # end of Document <TextFlow # Document text is in this text flow.
<TFTag `A'> # Make this a tagged text flow. <TFAutoConnect Yes> # Automatically connect text frames. <Para
> # end of Para
> # end of TextFlow
DPageSize, DMargins, and DColumns to specify the page size, margins, and number of columns in
columlay.mif:
# text frame.
<ParaLine
<String `This paragraph appears on a body page within a'> <String ` text flow tagged A.'>
> # end of ParaLine
# End of MIFFile
33

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 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:
<MIFFile 8.00> # Hand generated <Document <DPageSize 7.5" 9.0"> # Set the document page size. <DTwoSides No> # Make this a single-sided document. > # end of Document <Page # Create a right master page. <PageType RightMasterPage> <PageTag `Right'>
TRNumColumns statement. By default, if the text
ADOBE FRAMEMAKER 9
MIF Reference
<TextRect # Set up a text frame. <ID 1> # Give the text frame a unique ID. <Pen 15> # Set the pen style. <Fill 15> # Set the fill pattern (none). <ShapeRect 2" 1" 5" 7.5"> # Specify the text frame size. <TRNumColumns 1> # Specify number of text columns. <TRColumnGap 0.0"> # 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:
<Page <PageType BodyPage> <PageBackground `Default'> <TextRect <ID 2> # This text frame has a unique ID.
# The body page dimensions match those of the
# master page. <ShapeRect 2" 1" 5" 7.5"> <TRNumColumns 1> # The column layout must also match. <TRColumnGap 0.0"> > # end TextRect > # end Page
If the dimensions (specified by the ShapeRect statement) and column layout (specified by the TRNumColumns and
TRColumnGap st ateme nts ) of the mas ter page an d bo dy p age do n ot m atch, the body pag e wi ll n ot u se t he p age layou t
from the master page. Instead, the body page will use the page layout defined for the body page.
34
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:
<TextFlow
<TFTag `A'> # The text flow must be tagged. <TFAutoConnect Yes> # Autoconnect must be turned on. <Para
<ParaLine
<TextRectID 1> # Refers to text frame ID on master page.
> # end of ParaLine
> # end of Para
> # end of 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.
ADOBE FRAMEMAKER 9
MIF Reference
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.
<TextFlow <TFTag `A'> <TFAutoConnect Yes> <Para <TextRectID 2> <PgfTag `Body'> <ParaLine <String `This appears on a body page within a text flow'> <String ` tagged A.'> > # end of ParaLine > # end of Para > # end of TextFlow
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.
35

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
DTwoSides statements to determine when to add a left page and when to add a
right page.
DParity and
ADOBE FRAMEMAKER 9
MIF Reference
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.

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 127.)
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 the marker text.
The following example inserts an index marker:
<Para
<ParaLine
<Marker
<MType 2> # Index marker
<MText `Hello world'># Index entry > # end of Marker <String `Hello world'>
> # 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 MIF file; this statement is ignored when the MIF interpreter reads a MIF file.
Marker statement. The Marker statement specifies the marker type and
MCurrPage statement when you generate a
36

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.
ADOBE FRAMEMAKER 9
MIF Reference
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
XRefFormats statement.
one
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.
<XRefFormats
<XRefFormat
<XRefName `Page'> <XRefDef `page\x11 <$pagenum\>'>
> # 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 ( 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.
\x11) appears between the word “page” and the page number. Each cross-reference format
37

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:
<Para
<PgfTag `Heading'> <ParaLine
<Marker
<MType 9> # Identifies this as a cross-reference
<MText `34126: Heading: My Heading'>
> # end of Marker <String `My Heading'>
> # end of ParaLine
> # end of Para
The <MType 9> 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 new cross-reference points to the
<MText> is not mandatory. However, the number in the example ensures that the
‘My heading’ heading.
# Cross-reference source
ADOBE FRAMEMAKER 9
MIF Reference

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 cross­reference should appear. The
XRefFormat), the source text, and the pathname of the file containing the source:
<Para
<PgfTag `Body'> <ParaLine
<String `This is a cross-reference to '> <XRef
<XRefName `Page'> # Cross-reference format
<XRefSrcText `34126: Heading: My Heading'>
<XRefSrcFile `'> # File containing source > # end of XRef <XRefEnd> <String `.'>
> # end of ParaLine
> # end of Para
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 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
XRef statement provides the name of the cross-reference format (defined in
# Source text
MText statement in the corresponding reference point marker. The XRefSrcFile
XRefEnd statement after the XRef statement.
38

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:
<XRef
<XRefName `Page'> <XRefSrcText `34126: Heading: My Heading'> <XRefSrcFile `'>
> # end of XRef <String `page'> # The text that appears in the document; <Char HardSpace > # in this case, a page number followed a <String `1'> # hard space and the number 1 <XRefEnd> # 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.
ADOBE FRAMEMAKER 9
MIF Reference
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 Variable-
Formats
statement provides the variable name and definition.
<VariableFormats
> # 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:
<VariableFormat
> # 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.
statement contains a VariableFormat statement for each document variable. The VariableFormat
<VariableFormat
<VariableName `Product Number'>
<VariableDef `A15-24'>
> # end of VariableFormat
<VariableName `Product Number'>
<VariableDef `<Emphasis\>A15-24<Default ¶ Font\>'>
39

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:
<VariableFormat
<VariableName `Page Count'>
<VariableDef `<$lastpagenum\>'> > # 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:
<Para
<ParaLine
<String `This document has '> <Variable
<VariableName `Page Count'>
ADOBE FRAMEMAKER 9
> # end of Variable <String `pages.'>
> # end of ParaLine > # end of Para
MIF Reference
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.

Creating conditional text

You can produce several slightly different versions of a document from a single conditional document. In a condi­tional 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 Uncondi-
tional
statements.
Show or hide conditional text by using the CState statement.
40

Creating and applying condition tags

In MIF, all condition tags are defined in a ConditionCatalog statement, which contains one or more Condition statements. A 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:
<ConditionCatalog
<Condition
> # end of Condition
<Condition
> # 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:
<Para
<ParaLine
Condition statement specifies the condition tag name, the condition indicators (how conditional text
<CTag `Summer'> # Condition tag name <CState CHidden > # Condition state (now hidden) <CStyle COverline > # Condition indicator <CColor `Blue'> # Condition indicator
<CTag `Winter'> <CState CShown > # This condition is shown <CStyle CUnderline > <CColor `Red'>
<String `Our company makes a full line of '>
# Unconditional text
<Conditional # Begin conditional text
<InCondition `Winter'> # Specifies condition tag > # end of Conditional <String `warm and soft sweaters'>
# Conditional text
<Conditional # Begin conditional text
<InCondition `Summer'> # Specifies condition tag > # end of Conditional <String `cool and comfortable tank tops'> <Unconditional > <String ` for those '> # Unconditional text
> # end of ParaLine <ParaLine
<Conditional
<InCondition `Winter'> > # end of Conditional <String `chilly winter'> <Conditional
<InCondition `Summer'> > # end of Conditional <String `hot summer'> <Unconditional > <String ` days.'>
> # end of ParaLine
> # end of Para
You can apply multiple condition tags to text by using multiple InCondition statements:
<Conditional
<InCondition `Winter'> <InCondition `Summer'>
> # end of Conditional
ADOBE FRAMEMAKER 9
MIF Reference
41

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 describe them in the 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 to determine the Show/Hide state of conditional text.
The
<BoolCond <BoolCondTag `Conditional Expression'> <BoolCondExpr `"comment"OR"summary"OR"detail"'> <BoolCondState `Active'>
> # 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.
BoolCondTag. You can create these expressions by linking condition tags with boolean operators and
BoolCondExpr statement. If the value of BoolCondState of a Boolean condition expression is
BoolCondState is ‘Active’, FrameMaker uses this expression
BoolCond statement appears in the BoolCondCatalog as shown below :
ADOBE FRAMEMAKER 9
MIF Reference

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 Within the document text flow, a conditional text marker,
<Marker <MType 10>>, indicates where hidden condi-
tional text would appear if shown.
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 statement. If the hidden text spans paragraphs, each end of paragraph in the conditional text forces a new 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.
<TextFlow
<TFTag `A'> <TFAutoConnect Yes > <Para
<ParaLine
<String `Our company makes a full line of '>
# This marker indicates that hidden text appears in the
<Marker
<MType 10> <MText `+88793'>
<MCurrPage 0> > # end of Marker <Conditional
<InCondition `Summer'> > # end of Conditional <String `cool and comfortable tank tops'> <Unconditional > ...
> # end of Para
> # end of TextFlow
<TextFlow
<TFTag `HIDDEN'> <Para
<PgfEndCond Yes > <ParaLine
<Marker
<MType 10>
<MText `-88793'>
<MCurrPage 0> > # end of Marker <Conditional
<InCondition `Winter'> > # end of Conditional
<String `chilly winter'> <Marker
<MType 10>
# hidden text flow.
# 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.
# Here's the hidden text.
HIDDEN.
Para
Para
42
ADOBE FRAMEMAKER 9
# This marker shows the end of hidden text. It must
# match the marker that begins with a minus sign (-). <MText `=88793'> <MCurrPage 0>
> # end of Marker
> > # end of Para ...
> # end of TextFlow
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
uesCatalog
, 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 struc­tured document. A filter comprises a tag called state of the filter which is stored in the
AttrCondState tag. The state of the filter indicates whether the filter is active
AttrCondExprTag, the expression tag AttrCondExprStr, and the
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:
<AttrCondExprCatalog <AttrCondExpr <AttrCondExprTag `NewExpr1'> <AttrCondExprStr `(A="val1" OR A="val11") AND (B="val2" OR B="val22")'> <AttrCondState `Inactive'> > # end of AttrCondExpr <AttrCondExpr <AttrCondExprTag `NewExpr2'> <AttrCondExprStr `(A="val4" OR A="val44") OR (B="val3" OR B="val33")'> <AttrCondState `Active'> > # end of AttrCondExpr > # end of AttrCondExprCatalog
The following statements create an empty filter catalog:
<AttrCondExprCatalog
> # 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:
<DefAttrValuesCatalog <DefAttrValues <AttributeTag `A'> <AttributeValue `val1'> <AttributeValue `val2'> > # end of DefAttrValues <DefAttrValues <AttributeTag `B'>
DefAttrVal-
43
ADOBE FRAMEMAKER 9
MIF Reference
<AttributeValue `val3'> <AttributeValue `val4'> > # end of DefAttrValues > # end of DefAttrValuesCatalog
The following statements create a catalog of attributes without values:
<DefAttrValuesCatalog
> # end of DefAttrValuesCatalog

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.
3 Generate the text flow for your document and use the include statement to read the formatting information
from the template.
44

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.
T o find the first body page, search for the first occurrence of in your MIF file looks like this:
<Page <Unique 45155> <PageType BodyPage > <PageNum `1'> <PageSize 8.5" 11.0"> <PageOrientation Portrait > <PageAngle 0.0> <PageBackground `Default'> <TextRect <ID 7> <Unique 45158> <Pen 15>
<PageType BodyPage>. Suppose the first body page
ADOBE FRAMEMAKER 9
<Fill 15> <PenWidth 1.0 pt> <ObColor `Black'> <DashedPattern <DashedStyle Solid> > # end of DashedPattern <ShapeRect 1.0" 1.0" 6.5" 9.0"> <TRNext 0> > # end of TextRect > # end of Page
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
<TextRectID 7> to
locate the text flow. It might look similar to the following:
<TextFlow
<Notes> # end of Notes <Para
<Unique 45157>
<PgfTag `MyFormat'>
<ParaLine
<TextRectID 7> <String `A single line of text.'>
> > # end of Para
> # end of TextFlow
Delete the entire text flow.
45
4 From your application, generate a MIF file that includes the edited template file.
Suppose the edited MIF file is called
mytemplate.mif. Y our application would generate the following two lines
at the top of any new MIF file:
<MIFFile 8.00> # 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:
<MIFFile 8.00> # Generated by my application include (mytemplate.mif) <TextFlow
<TFTag `A'> <TFAutoConnect Yes> <TextRectID 7> <Para
<ParaLine
<String `This is the content of the generated document.'>
> > # end of Para
> # end of TextFlow
A user can open the generated MIF file to get a fully formatted FrameMaker document.
ADOBE FRAMEMAKER 9
MIF Reference

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.
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 have no effect in an unlocked document. Make sure that the
Document statement also includes the following
substatement:
<DViewOnly Yes>

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:
<DViewOnlyWinMenubar No>
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:
<DViewOnlyWinBorders No>
To suppress selection in the document window, include the following statement:
<DViewOnlySelect No>
You can normally select text and objects in a locked document by Control-dragging in UNIX and Windows versions. Specifying
To suppress the appearance of a document region pop-up menu, use the statement:
<DViewOnlyWinPopup No>
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 statement has a value of statement has no effect in the Windows version of FrameMaker.
To make a window behave as a palette window, use the following statement:
<DViewOnlyWinPalette Yes>
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 FrameMaker.
<DViewOnlySelect No> prevents all selection in a locked document.
No, the background menu does not appear when the right mouse button is pressed. This
DViewOnlyWinPalette statement to No in the MIF file before opening it in
Document statement. These statements
DViewOnlyWinPopup
46

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.
ADOBE FRAMEMAKER 9
MIF Reference
You can use MIF statements to turn off active cross-references and to change the type of hypertext link that the cross-reference 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:
<DViewOnlyXRef OpenBehavior>
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:
<DViewOnlyXRef NotActive>
Use this setting to emulate the behavior in earlier FrameMaker versions.
You ca n u se t he
DViewOnlySelect statement to control whether active cross-references highlight the marker
associated with destination text.
When cross-references are active and <DViewOnlySelect Yes> is specified, clicking a cross-reference in the
document highlights the marker associated with the destination text.
When cross-references are active and <DViewOnlySelect UserOnly> 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 <DViewOnlySelect No> 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.
47

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:
<DViewOnlyNoOp 0x313># Disable printing <DViewOnlyNoOp 0x322># Disable copying <DViewOnlyNoOp 0xF00># Disable unlocking the document
The following table lists the files where you can find fcodes for commands:
For this version Look here
UNIX
Windows install_dir/fminit/configui/cmds.cfg, where install_dir is the directory where
$FMHOME/fminit/
use, such as
FrameMaker is installed
usenglish
language
/configui/Commands, where
language
is the language in
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 ca n u se M IF t o:
ADOBE FRAMEMAKER 9
MIF Reference
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).
To use an earlier version of FrameMaker (such as 5.5) to edit a document created with a late r 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.”
48

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 228.

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.
ADOBE FRAMEMAKER 9
MIF Reference
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.
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 219.
49

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 infor­mation 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 9
CAD or Other Illustration Packages
Database
Text
MIF (ASCII text)
Final Document
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.
50
For an example of a database publishing application, see “Database publishing” on page 229.

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
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 corresponding
Verbose statement to your file to get more complete messages.
Tbl statement causes an error.
ATbl statement that comes before its
ADOBE FRAMEMAKER 9
Here are some additional tips for debugging MIF files:
MIF Reference
Use the Verbose statement to generate comments. To debug a specific section of a MIF file, you can precede the
section with the
<Verbose Yes> statement and end the section with the <Verbose No> statement.
Make sure angle brackets are balanced.
Make sure that MIF statement names are capitalized correctly. MIF statement names and keyword values are
case-sensitive.
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 every table anchor has a corresponding table instance, and that every table instance has an
anchor in the text flow.
Make sure that tag names with spaces are enclosed in straight single quotation marks.
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.
51

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 guide­lines 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 descrip­tions in , “MIF Document Statements”, , “MIF Book File Statements”, and , “MIF Statements for Structured Documents and Books”.

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 statement, is optional. Most main statements use substatements to describe objects and their properties.
Statement Description
MIFFile
52
MIFFile
Control statements Establish the default units in a Units statement, the debugging setting in a Verbose
Macro statements Define macros with a define statement and read in files with an include statement.
ColorCatalog
ConditionCatalog
BoolCondCatalog
CombinedFontCatalog
PgfCatalog
ElementDefCatalog
FmtChangeListCatalog
Labels the file as a MIF document file. The MIFFile statement is required and must be the first statement in the file.
statement, and comments in a Comment statement. These statements can appear anywhere at the top level as well as in some substatements.
These statements can appear anywhere at the top level.
Describes document colors. The ColorCatalog statement contains Color state­ments that define each color and tag.
Describes condition tags. The ConditionCatalog statement contains Condition statements that define each condition tag and its properties.
Describes Boolean Condition Expressions. The BoolCondCatalog statement
BoolCond statements that define each Boolean condition expression with its
contains show/hide properties.
Describes combined fonts. The CombinedFontCatalog statement contains
CombinedFontDefn statements that define each combined font and its component
fonts.
Describes paragraph formats. The PgfCatalog statement contains Pgf statements that define the properties and tag for each paragraph format.
Defines the contents of the Element Catalog for a structured document. For more infor­mation, see ,“MIF Statements for Structured Documents and Books.”
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
AttrCondExprCatalog
Defines the DefAttrValuesCatalog for a structured document. For more information, see ,“MIF Statements for Structured Documents and Books.”
Defines the AttrCondExprCatalog for a structured document. For more information, see ,“MIF Statements for Structured Documents and Books.”
Statement Description
ADOBE FRAMEMAKER 9
MIF Reference
53
FontCatalog
RulingCatalog
TblCatalog
KumihanCatalog
Views
VariableFormats
MarkerTypeCatalog
XRefFormats
Document
BookComponent
InitialAutoNums
Describes character formats. The FontCatalog statement contains Font statements that define the properties and tag for each character format.
Describes ruling styles for tables. The RulingCatalog statement contains Ruling statements that define the properties for each ruling style.
Describes table formats. The TblCatalog statement contains TblFormat state­ments that define the properties and tag for each table format.
Contains the Kumihan tables that specify line composition rules for Japanese text.
Describes color views for the document. The Views statement contains View state­ments that define which colors are visible in each color view.
Defines variables.The VariableFormats statement contains VariableFormat statements that define each variable.
Defines a catalog of user-defined markers for the current document. The MarkerType-
Catalog
user-defined marker.
Defines cross-reference formats. The XRefFormats statement contains XRef-
Format
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.
Provides the setup information for files generated from the document. BookCompo-
nent
marker types to include.
Provides a starting value for the autonumber series in a document.
statement contains MarkerTypeCatalog statements that specify each
statements that define each cross-reference format.
statements describe the filename, filename suffix, file type, and paragraph tags or
Dictionary
AFrames
Tbls
Page
TextFlow
Lists allowed words in the document.
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 state-
ment identifies where a specific anchored frame appears in a text flow; it need only supply the frame’s ID number.
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 docu­ment contents are described, the MIF file must include a short sponds to each appears in a text flow; it need only supply the table’s ID number.
Describes the layout of each page in the document. The descr iption 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 in the document, including the master pages. When you write an import filter, you can
Page statements; the MIF interpreter repaginates the document as needed.
omit
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
statements are not significant because the MIF interpreter wraps the contents of
Line
Tbl statement. The ATbl statement identifies where a specific table
ATbl statement that corre-
Page statement for each page
Para-
ParaLine statements into paragraphs.
ADOBE FRAMEMAKER 9
MIF Reference

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
<MIFFile
The
version
version
> #
comment
argument indicates the version number of the MIF language used in the file, and
(Required) Identifies a MIF file
comment
shows the name and version number of the program that generated the file. For example, a MIF file saved in version 9 of FrameMaker begins with the following line:
<MIFFile 9.00> # Generated by FrameMaker 9.0
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.”

Control statements

54
Control statements set defaults, provide debugging information, and insert comments.

Units statement

The Units statement specifies the default units for dimensions and coordinates in the document. It can appear anywhere at the top level or within any statement.
Syntax
<Units
Usage
keyword
>
Default units for document
keyword
Uin Ucm Umm Upica Upt Udd Ucc
can be one of:
If no Units statement is provided, the default value is Uin. A Units statement remains in effect until another Units statement is encountered. When FrameMaker writes a MIF file, it uses the document’s current display units.

CharUnits statement

The CharUnits statement specifies the default units for measuring font size and line spacing. This is to accom­modate the Japanese “Q” units of measurement. This statement can appear anywhere at the top level or within any statement.
Syntax
<CharUnits
keyword
ADOBE FRAMEMAKER 9
>
Default units for font size and line spacing
keyword
CUpt CUQ
can be one of:
MIF Reference

Verbose statement

The Verbose statement turns on a debugging mode for MIF. It can appear anywhere at the top level or within any statement.
Syntax
Yes
<Verbose
boolean
>
Usage
When Verbose mode is on, the MIF interpreter writes detailed stream of processing descriptions to a window. In UNIX versions of FrameMaker, these descriptions appear in the window from which FrameMaker was started. To display messages in the Windows version, you must turn on Show File Translation Errors in FrameMaker’s Prefer­ences dialog box. The messages appear in a console window in Windows. The processing descriptions can be quite long, but may be essential for debugging a program that creates MIF for input to FrameMaker. A can occur unnested or within markup statements, as explained later in this chapter. A in effect until the interpreter encounters another
turns on debugging information
Verbose statement
Verbose statement remains
Verbose statement that changes the setting.
55

Comment statement

The Comment statement identifies an optional comment.
Syntax
<Comment
comment-text
>
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.
<Comment - The following statements define the paragraph formats> <Comment <These statements have been removed: <Font <FBold> <FItalic>>>>
The MIF interpreter processes number signs within Comment statements as normal comments, ignoring the remainder of the line.
<Comment - When a number sign appears within a <Comment> statement, # the MIF interpreter ignores the rest of the characters in that # line--including angle brackets < >.> # End of <Comment> Statement.
Identifies a comment
ADOBE FRAMEMAKER 9
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 appear before any occurrences of the macro name.
Syntax
define (
Usage
name, replacement
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, <Font <FWeight `Bold'>>)
When you use the macro in MIF statements, write <Bold>. The interpreter replaces <Bold> with <Font <FWeight
`Bold'>>
. 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 correctly.
define statement can appear anywhere in a MIF file; however, the macro definition must
)
<Bold> instead of Bold). The MIF parser requires these brackets to interpret the macro
Creates a macro
56

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 can appear anywhere in a MIF file. However, make sure that the contents of the included file
An appear in a valid location when they are read into the MIF file.
Syntax
include (
Usage
The example,
pathname
pathname
/usr/doc/template.mif). For the Windows version of FrameMaker, use the following guideline for
)
argument specifies a UNIX-style pathname, which uses a slash (/ ) to separate directory names (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.
include statement with the contents of the included file.
Reads in a file
ADOBE FRAMEMAKER 9
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 you can preview the final document with all the text edits 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
Syntax
<DTrackChangesOn boolean>
DTrackChangesOn statement. Before you accept all text edits,
DTrackChangesPreviewState statement.
Preserves the On/Off state of the Track Text Edit feature
57
<DTrackChangesPreviewState integer>
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

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
Within the text flow,

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.
ConditionCatalog statement.
Conditional and Unconditional statements show where conditional text begins and ends.
Syntax
<ConditionCatalog
<Condition…>
<Condition…>
Defines a condition tag (see “Condition statement,” next)
Additional statements as needed
ADOBE FRAMEMAKER 9
MIF Reference
58
>
End of ConditionCatalog statement

Condition statement

The Condition statement defines the state of a condition tag and its condition indicators, which control how condi­tional text is displayed in the document window. The statement must appear in a The property statements can appear in any order.
Syntax
<Condition
<CTag
string
<CState
<CStyle
>
keyword
keyword
>
>
Condition tag string
Whether text with this tag is shown or hidden
keyword
CHidden CShown
can be one of:
Format of text with this condition
keyword
CAsIs CUnderline CDoubleUnderline CStrike COverline CChangeBar
can be one of:
ConditionCatalog statement.
<CColor
tagstring
<CSeparation
>
>
integer
Color for condition tag (see “ColorCatalog statement” on page 80)
Color for condition tag; no longer used, but written out by FrameMaker for backward-
>
compatibility (see “Color statements” on page 247)
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
Syntax
<Conditional
<InCondition
<InCondition
>
<Unconditional>
tagstring
tagstring
>
>
Row or ParaLine statement.
Begin conditional text
Specifies condition tag from Condition Catalog
Additional statements as needed
End of Conditional statement
Returns to unconditional state
ADOBE FRAMEMAKER 9
MIF Reference

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 are stored in a
The
BoolCondCatalog statement defines the contents of Boolean Expression Catalog for conditional text. A MIF
file can have only one
Syntax
<BoolCondCatalog
BoolCondCatalog statement.
BoolCondCatalog statement, after Condition Catalog.
BoolCond statement. The Boolean expressions for a document
59
<BoolCond.........>
<BoolCond.........>
> #
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 condi­tional text. Statement must appear in order.
Syntax
<BoolCond
<BoolCondTag string>
<BoolCondExpr string>
<BoolCondState string>
BoolCondCatalog statement. The property statement can appear in any
Tag name used for Boolean expressions.
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, “
.
“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:
Comment” OR
'Active'
'Inactive'
> #
End of BoolCond
ADOBE FRAMEMAKER 9
MIF Reference

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 (
AttributeValue).
(

DefAttrValuesCatalog statement

The DefAttrValuesCatalog statement is used to define the contents of the Defined Attribute Values catalog. A MIF file can contain one
Syntax
<DefAttrValuesCatalog
DefAttrValuesCatalog statement only.
AttributeTag) and the corresponding list of values
60
<DefAttrValues.........>
<DefAttrValues.........>
> #
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
<DefAttrValues
<AttributeTag string>
<AttributeValue string>
<AttributeValue string>
> #
Attribute Name
Attribute Value
Additional attribute values, as required.
End of DefAttrValues

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
<AttrCondExprCatalog
<AttrCondExpr.........>
<AttrCondExpr.........>
> #
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
<AttrCondExpr
ADOBE FRAMEMAKER 9
MIF Reference
61
<AttrCondExprTag string>
<AttrCondExprStr string>
<AttrCondState string>
> #
Expression Tag string
Expression string
Indicates whether the AttrCondExpr is applied to the document.
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

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
<PgfCatalog
PgfCatalog statement.
<Pgf…>
<Pgf…>
>
Defines a paragraph format (see “Pgf statement” on page 61)
Additional statements as needed
End of PgfCatalog statement
Usage
If you don’t include a PgfCatalog statement, the MIF interpreter uses the paragraph formats defined in NewTem-
plate
. (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.
ADOBE FRAMEMAKER 9
MIF Reference
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 following exception: the
Syntax
Basic properties
PgfNumTabs statement must appear before any TabStop statements.
Pgf statement, with the
62
<Pgf
<PgfTag tagstring>
<PgfUseNextTag
<PgfNextTag
<PgfFIndent
boolean
tagstring
dimension
<PgfFIndentRelative
<PgfFIndentOffset
dimension
<PgfLIndent dimension>
<PgfRIndent dimension>
<PgfAlignment
keyword
<PgfSpBefore dimension>
<PgfSpAfter dimension>
<PgfLineSpacing
keyword
>
>
>
boolean
>
>
Begin paragraph format
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
LeftRight Left Center Right
Space above paragraph
Space below paragraph
Amount of space between lines in paragraph measured from baseline to baseline
keyword
Fixed (default font size) Proportional (largest font in line)
can be one of:
can be one of:
<PgfLeading dimension>
<PgfNumTabs
integer>
<TabStop
<TSX dimension>
<TSType
keyword
>
Space below each line in a paragraph
Number of tabs in a paragraph
The statement is not required for input files; the MIF interpreter calcu­lates the number of tabs. If it does appear, it must appear before any
TabStop statements; otherwise, the MIF interpreter ignores the tab
settings.
Begin definition of tab stop; the following property statements can appear in any order, but must appear within a
Horizontal position of tab stop
Tab stop alignment
keyword
Left Center Right Decimal
can be one of:
TabStop statement
ADOBE FRAMEMAKER 9
MIF Reference
63
<TSLeaderStr
string
<TSDecimalChar integer>
>
<TabStop…>
Default font properties
<PgfFont…>
Pagination properties
<PgfPlacement
keyword
<PgfPlacementStyle
>
>
keyword
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 (see page 66)
Vertical placement of paragraph in text column
keyword
Anywhere ColumnTop PageTop LPageTop RPageTop
>
Placement of side heads, run-in heads, and paragraphs that straddle text columns
keyword
Normal RunIn SideheadTop SideheadFirstBaseline SideheadLastBaseline Straddle StraddleNormalOnly
See page 65
can be one of:
can be one of:
<PgfRunInDefaultPunct string>
<PgfWithPrev
<PgfWithNext
<PgfBlockSize integer
Numbering properties
<PgfAutoNum
<PgfNumFormat
<PgfNumberFont
<PgfNumAtEnd
Advanced properties
<PgfHyphenate
<HyphenMaxLines integer
<HyphenMinPrefix integer
<HyphenMinSuffix integer
boolean
boolean
boolean
string
tagstring
boolean
boolean
>
>
>
>
>
>
>
>
>
>
>
Default punctuation for run-in heads
Yes keeps paragraph with previous paragraph
Yes keeps paragraph with next paragraph
Widow/orphan lines
Yes turns on autonumbering
Autonumber formatting string
Tag from Character Catalog
Yes places number at end of line, instead of beginning
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
ADOBE FRAMEMAKER 9
MIF Reference
64
<HyphenMinWord integer
<PgfLetterSpace
boolean
>
>
<PgfMinWordSpace integer
<PgfOptWordSpace integer
<PgfMaxWordSpace integer
<PgfLanguage
keyword
>
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)
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 char­acter format is now properly specified in the PgfFont and Font statements (see page 66)
keyword
NoLanguage USEnglish UKEnglish German SwissGerman French CanadianFrench Spanish Catalan Italian Portuguese Brazilian Danish Dutch Norwegian Nynorsk Finnish Swedish Japanese TraditionalChinese SimplifiedChinese Korean
can be one of:
<PgfTopSeparator
<PgfTopSepAtIndent
<PgfTopSepOffset
<PgfBotSeparator
<PgfBotSepAtIndent
<PgfBotSepOffset
Table cell properties
<PgfCellAlignment
string
boolean
dimension
string
boolean
dimension
keyword
>
>
>
>
>
>
>
Name of reference frame (from reference page) to put above para­graph
Used for structured documents only
Used for structured documents only
Name of reference frame (from reference page) to put below para­graph
Used for structured documents only
Used for structured documents only
Vertical alignment for first paragraph in a cell
keyword
Top Middle Bottom
can be one of:
ADOBE FRAMEMAKER 9
MIF Reference
65
<PgfCellMargins
<PgfCellLMarginFixed
<PgfCellTMarginFixed
<PgfCellRMarginFixed
<PgfCellBMarginFixed
Miscellaneous properties
<PgfLocked
<PgfAcrobatLevel
L T R B
boolean
integer
>
boolean
boolean
boolean
boolean
>
>
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
Yes means bottom cell margin is added to TblCellMargins; No
>
means width of bottom cell margin overrides TblCellMargins
Yes means the paragraph is part of a text inset that obtains its format-
ting properties from the source document. See page 65
Level at which the paragraph is shown in an outline of Acrobat Book­marks; 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
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
PgfTag statement in a ParaLine statement.
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
Locked paragraphs and text insets
StraddleNormal.
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.
<PgfLocked Yes> statement appears in a specific paragraph, that paragraph is part of a text inset that retains
If the formatting information from the source document. The paragraph is not affected by global formatting performed on the document.
<PgfLocked No> statement appears in a specific paragraph, that paragraph is not part of a text inset, or is part
If the 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 130.
ADOBE FRAMEMAKER 9
MIF Reference

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

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
<FontCatalog
FontCatalog statement.
66
<Font…>
<Font…>
>
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
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 202.
Syntax
<PgfFont|Font
<FTag
Font name
<FFamily
<FAngle
<FWeight
Font statement must appear in a FontCatalog, Para, or TextLine statement.
tagstring
string
string
string
>
>
>
>
Character format tag name
Name of font family
Name of angle, such as Oblique
Name of weight, such as Bold
<FVar
<FPostScriptName
<FPlatformName
string
>
string
string
>
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 69)
Font language
ADOBE FRAMEMAKER 9
MIF Reference
67
<FLanguage
Font encoding
<FEncoding
keyword
keyword
>
>
Language to use for spelling and hyphenation
keyword
NoLanguage USEnglish UKEnglish German SwissGerman French CanadianFrench Spanish Catalan Italian Portuguese Brazilian Danish Dutch Norwegian Nynorsk Finnish Swedish Japanese TraditionalChinese SimplifiedChinese Korean
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
FrameRoman JISX0208.ShiftJIS BIG5 GB2312-80.EUC KSC5601-1992
can be one of:
can be one of these:
Font size, color, and width
<FSize
<FColor
<FSeparation
<FStretch
Font style
<FUnderlining
<FOverline
<FStrike
dimension
tagstring
integer
percent
keyword
boolean
boolean
>
>
>
>
>
>
>
Size, in points only (or in Q on a Japanese system)
Font color (see “ColorCatalog statement” on page 80)
Font color; no longer used, but written out by FrameMaker for backward­compatibility (see “Color statements” on page 247)
The amount to stretch or compress the font, where 100% means no change
Turns on underlining and specifies underlining style
keyword
FNoUnderlining FSingle FDouble FNumeric
Turns on overline style
Turns on strikethrough style
can be one of:
ADOBE FRAMEMAKER 9
MIF Reference
68
<FChangeBar
<FPosition
<FPairKern
<FCase
Kerning information
keyword
<FDX percent>
<FDY percent>
<FDW percent>
<FTsume
boolean
boolean
keyword
boolean
>
>
>
>
>
Turns on the change bar
Specifies subscript and superscript characters; font size and position relative to baseline determined by Document substatements (see page 90)
keyword
FNormal FSuperscript FSubscript
Turns on pair kerning
Applies capitalization style to string
keyword
FAsTyped FSmallCaps FLowercase FUppercase
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 expresse d as percentage of an em; posi­tive 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
can be one of:
can be one of:
Filter statements Valid when text properties are applied to a file imported into FrameMaker
<FPlain
<FBold
<FItalic
Miscellaneous information
<FLocked
>
boolean
boolean
boolean
boolean
>
>
>
>
Used only by filters
Used only by filters
Used only by filters
Yes means the font is part of a text in set 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
PgfFont statements are optional. Like the Pgf substatements, Font substatements reset the current font.
and
When the MIF interpreter reads a 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
Para statement to override the default character format. Substatements in the Font
Font statement, it continues using the character format properties until it either
FTag statement. A Font statement that does not supply all property substate-
ments 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.
ADOBE FRAMEMAKER 9
Locked fonts and text insets
MIF Reference
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.
<FLocked Yes> statement appears in a specific character format, that character format is part of a text inset
If the that retains formatting information from the source document. The character format is not affected by global formatting performed on the document.
<FLocked No> statement appears in a specific character format, either that character format is not part of a
If the 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 130.
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 statements FFamily, FAngle, FWeight, and FVar specify how FrameMaker stores font information inter-
nally.
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.
For complete font specifications, FrameMaker always writes the
ScriptName
statement. A UNIX version of FrameMaker ignores
statements. In addition, the Windows version of FrameMaker also writes the FPlatformName
FPlatformName.
FFamily, FAngle, FWeight, FVar, and FPost-
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.
69
Font encoding
The <FEncoding> 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.
This statement takes precedence over all other font attributes. For example, if the document includes a font with
<FEncoding `JISX0208.ShiftJIS’>, 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 <FPlatformName a font for a particular platform. The
string
> statement provides a platform-specific ASCII string name that uniquely identifies
string
value consists of several fields separated by a period.
Windows: The Windows platform name has the following syntax:
<FPlatformName W.
W
FaceName.ItalicFlag.Weight.Variation
Platform designator
ADOBE FRAMEMAKER 9
MIF Reference
>
70
FaceName
ItalicFlag
Weight
Variation
Windows face name (for more information, see your Windows documentation)
Whether font is italic; use one of the following flags:
I (Italic)
R (Regular)
Weight classification, for example 400 (regular) or 700 (bold)
Optional variation, for example Narrow
The following statements are valid representations of the Windows font Helvetica Narrow Bold Oblique:
<FPlatformName W.Helvetica-Narrow.I.700> <FPlatformName W.Helvetica.I.700.Narrow>

Tables

Table formats are defined by a TblFormat statement. Table formats can be locally defined or they can be stored in a Table Catalog, which is defined by a
RulingCatalog statement.
In a MIF file, all document tables are contained in one statement. The
ATbl statement specifies where each table instance appears in the text flow.
TblCatalog statement. The ruling styles used in a table are defined in a
Tbls statement. Each table instance is contained in a Tbl

TblCatalog statement

The TblCatalog statement defines the Table Catalog. A document can have only one TblCatalog statement, which must appear at the top level in the order given in “MIF file layout” on page 52.
Syntax
<TblCatalog
<TblFormat…>
<TblFormat…>
>
Defines a table format (see “TblFormat statement,” next)
Additional statements as needed
End of TblCatalog statement

TblFormat statement

The TblFormat statement defines the format of a table. A TblFormat statement must appear in a TblCatalog or
Tbl statement. A TblFormat statement contains property substatements that define a table’s properties. Table
in a property statements can appear in any order.
Syntax
Basic properties
<TblFormat
ADOBE FRAMEMAKER 9
MIF Reference
71
<TblTag
<TblLIndent
<TblRIndent
tagstring
dimension
dimension
<TblSpBefore
<TblSpAfter
dimension
<TblAlignment
<TblPlacement
>
dimension
keyword
keyword>
Table format tag name
>
>
>
>
>
Left indent for the table relative to the table’s containing text column; has no effect on right-aligned tables
Right indent for the table relative to the table’s containing text column; has no effect on left-aligned tables
Space above table
Space below table
Horizontal alignment within text column or text frame
keyword
Left Center Right Inside Outside
can be one of:
See page 74
Vertical placement of table within text column
keyword
Anywhere Float ColumnTop PageTop LPageTop RPageTop
can be one of:
<TblBlockSize integer
<TblCellMargins
L T R B
<TblTitlePlacement
<TblTitlePgf1
<PgfTag
tagstring
<Pgf…>
>
<TblTitleGap
<TblNumByColumn
Ruling properties
<TblColumnRuling
dimension
boolean
tagstring
keyword
>
>
>
>
>
>
>
Widow/orphan rows for body rows
Left, top, right, bottom default cell margins
Table title placement
keyword
InHeader InFooter None
Paragraph format of title for a new table created with the table format
Applies format from Paragraph Catalog
Overrides Paragraph Catalog format as needed (see page 61)
End of TblTitlePgf1 statement
Gap between title and top or bottom row
Autonumber paragraphs in cells; Yes numbers down each column and No numbers across each row
Ruling style for most columns; value must match a ruling style name specified in the
can be one of:
RulingCatalog statement
ADOBE FRAMEMAKER 9
MIF Reference
72
<TblXColumnNum integer
<TblXColumnRuling
<TblBodyRowRuling
<TblXRowRuling
tagstring
tagstring
tagstring
<TblRulingPeriod integer
<TblHFRowRuling
<TblSeparatorRuling
<TblLRuling
<TblBRuling
<TblRRuling
<TblTRuling
<TblLastBRuling
Shading properties
<TblHFFill integer
tagstring
tagstring
tagstring
tagstring
tagstring
tagstring
boolean
>
<TblHFColor tagstring
>
>
>
>
>
>
>
>
>
>
>
>
>
Number of column with a right side that uses the TblXColumnRuling statement
Ruling style for the right side of column TblXColumnNum
Default ruling style for most body rows
Exception ruling style for every nth body row
Number of body rows after which TblXRowRuling should appear
Ruling style between rows in the heading and footing
Ruling style for rule between the last heading row and first body row, and also between the last body row and the first footing row
Left outside table ruling style
Bottom outside table ruling style
Right outside table ruling style
Top outside table ruling style
Yes means draw bottom rule on the last sheet only; No means draw rule on the
bottom of every sheet
Default fill pattern for table heading and footing (see page 106)
Default color for table heading and footing (see page 80)
<TblHFSeparation
integer
<TblBodyFill integer
<TblBodyColor
<TblBodySeparation
<TblShadeByColumn
tagstr
integer
boolean
<TblShadePeriod integer
<TblXFill integer
>
<TblXColor tagstring
<TblXSeparation
<TblAltShadePeriod
Column properties
<TblWidth
dimension
integer
integer
>
<TblColumn
>
ing
>
>
>
>
>
>
>
>
Default color for table heading and footing; no longer used, but written out by FrameMaker for backward-compatibility (see “Color statements” on page 247)
Default fill pattern for body cells (see page 106)
Default color for body cells (see page 80)
Default color for body cells; no longer used, but written out by FrameMaker for backward-compatibility (see “Color statements” on page 247)
Yes specifies column shading; No specifies body row shading
Number of consecutive columns/rows that use TblBodyFill
Exception fill pattern for columns or body rows (see page 106)
Exception color for columns or body rows (see page 80)
Exception color for columns or body rows; no longer used, but written out by FrameMaker for backward-compatibility (see “Color statements” on page 247)
Number of consecutive columns/rows that use TblXFill; exception columns/rows alternate with default body columns/rows to form a repeating pattern
Not generated by FrameMaker, but can be used by filters to determine table width
Each table must have at least one TblColumn statement; a column without a statement uses the format of the rightmost column
ADOBE FRAMEMAKER 9
MIF Reference
73
<TblColumnNum integer
<TblColumnWidth
>
dimension
<TblColumnWidthP integer
<TblColumnWidthA
W W
>
<TblColumnH
<PgfTag
tagstring
>
<Pgf>
>
<TblColumnBody
<PgfTag
tagstring
>
<Pgf>
>
<TblColumnF
<PgfTag
tagstring
>
Column number; columns are numbered from left to right starting at 0
>
>
Width of column. See page 78
Not generated by FrameMaker, but a temporary column width when filtering proportionally-spaced tables from another application; converted to a fixed width when read in (see page 78)
Not generated by FrameMaker, but a width based on a cell width, for filters only; converted into a fixed width when read in. First value is minimum width; second value is maximum width. Values limit the range of a computed column width, and are usually set to a wide range (see page 78).
Default paragraph format for the column’s heading cells in new tables
Applies format from Paragraph Catalog
Overrides Paragraph Catalog format as needed (see page 61)
End of TblColumnH statement
Default paragraph format for the column’s body cells in new tables
Applies format from Paragraph Catalog
Overrides Paragraph Catalog format as needed (see page 61)
End of TblColumnBody statement
Default paragraph format for the column’s footing cells in new tables
Applies format from Paragraph Catalog
<Pgf>
>
>
<TblColumn…>
New table properties
<TblInitNumColumns integer
<TblInitNumHRows
<TblInitNumBodyRows
integer
integer
<TblInitNumFRows integer
Miscellaneous properties
<TblLocked
>
boolean
>
Overrides Paragraph Catalog format as needed (see page 61)
End of TblColumnF statement
End of TblColumn statement
More TblColumn statements as needed, one per column
>
>
>
>
Number of columns for new table
Number of heading rows for new table
Number of body rows for new tables
Number of footing rows for new tables
Yes means the table is part of a text inset th at obtains its formatting properties
from the source document
End of TblFormat statement
ADOBE FRAMEMAKER 9
MIF Reference
Usage
The basic properties, ruling properties, and shading properties correspond to settings in the Table Designer. The
tagstring
in the
TblBodyColor) must match a color tag defined in the ColorCatalog statement (see page 80).
Usage of some of the aspects of the
value specified in any ruling substatement (such as TblColumnRuling) must match a ruling tag defined
RulingCatalog statement (see page 79). The
TblFormat statement is described in the following sections.
tagstring
value specified in any color substatement (such as
Alignment of tables
The horizontal alignment of a table within a text column or text frame is specified by the TblAlignment statement:
If the table is aligned with the left, center, or right side of a text column or text frame, the TblAlignment
statement is set to
Left, Center, or Right, respectively.
If the table is aligned with the closer edge or farther edge of a text frame (closer or farther relative to the binding
of the book), the
Locked tables and text insets
TblAlignment statement is set to Inside or Outside, respectively.
The TblLocked statement does not correspond to any setting in the Table Designer. The statement is for text insets that retain formatting information from the source document.
<TblLocked Yes> statement appears in a specific table, that table is part of a text inset that retains formatting
If the information from the source document. The table is not affected by global formatting performed on the document.
<TblLocked No> statement appears in a specific table, that table is not part of a text inset or is part of a text
If the inset that reads formatting information from the current document. The table is affected by global formatting performed on the document.
For details about text insets, see “Text insets (text imported by reference)” on page 130.
74

Tbls statement

The Tbls statement lists the contents of each table in the document. A document can have only one Tbls statement, which must appear at the top level in the order given in “MIF file layout” on page 52.
Syntax
<Tbls
<Tbl…>
<Tbl…>
>
Beginning of tables list
Defines a table instance (see “Tbl statement,” next)
Additional statements as needed
End of Tbls statement

Tbl statement

The Tbl statement contains the contents of a table instance. It must appear in a Tbls statement.
Each
Tbl statement is tied to a location in a text flow by the ID number in a TblID statement. Each Tbl statement
has an associated must appear before the statement, and vice versa. For more information about the
ATbl statement within a ParaLine statement that inserts the table in the flow. The Tbl statement
ATbl statement that refers to it. Each Tbl statement can have only one associated ATbl
ATbl statement, see “ParaLine statement” on page 124.
Syntax
<Tbl
ADOBE FRAMEMAKER 9
MIF Reference
75
<TblID ID
<TblTag
>
tagstring
>
<TblFormat…>
Table columns
<TblNumColumns integer
<TblColumnWidth
<TblColumnWidth
dimension
dimension
<EqualizeWidths
<TblColumnNum integer
<TblColumnNum integer
>
Table title
<TblTitle
<TblTitleContent
<Notes…>
Table ID number
Applies format from Table Catalog
Overrides Table Catalog format as needed (see page 70)
>
>
>
>
>
Number of columns in the table
Width of first column
Width of second column
Width of remaining columns as needed
Makes specified columns the same width as the widest column (for filters only, see page 78)
First column
More columns as needed
End of EqualizeWidths statement
Begin definition of table title
Table title’s content, represented in one or more Para statements
Footnotes for table title (see page 123)
<Para…>
<Para…>
>
>
Tab le r ows
<TblH
<Row…>
<Row…>
>
<TblBody
<Row…>
<Row…>
Title text (see page 124)
Additional statements as needed
End of TblTitleContent statement
End of TblTitle statement
Table heading rows; omit if no table headings
See “Row statement,” next
Additional statements as needed
End of TblH statement
Table body rows
See “Row statement,” next
Additional statements as needed
ADOBE FRAMEMAKER 9
MIF Reference
76
>
<TblF
<Row…>
<Row…>
End of TblBody statement
Table footing rows; omit if no table footing
See “Row statement,” next
Additional statements as needed
>
>
End of TblF statement
End of Tbl statement
Usage
The table column statements specify the actual width of the table instance columns. They override the column widths specified in the
TblFormat statement.

Row statement

A Row statement contains a list of cells. It also includes row properties as needed. The statement must appear in a
Tbl statement.
Syntax
<Row
<Conditional…>
Specifies conditional row (row is unconditional if the statement is omitted)
<RowWithNext
<RowWithPrev
<RowMinHeight
<RowMaxHeight
<RowHeight
dimension
<RowPlacement
<Cell…>
<Cell…>
boolean
boolean
dimension
dimension
keyword
>
>
>
>
>
>
Keep with next body row
Keep with previous body row
Minimum row height
Maximum row height
Row height
Row placement
keyword
Anywhere ColumnTop LPageTop RPageTop PageTop
Each Row statement contains one Cell statement for each column (see “Cell state­ment,” next)
Additional statements as needed
can be one of:
>
End of Row statement
Usage
Each Row statement contains a Cell statement for each column in the table, even if a straddle hides a cell. Extra Cell statements are ignored; too few
Cell statements result in empty cells in the rightmost columns of the row.
ADOBE FRAMEMAKER 9
MIF Reference
When you rotate a cell to a vertical orientation, the width of unwrapped text affects the height of the row. You can
RowMaxHeight and RowMinHeight to protect a row’s height from extremes caused by rotating cells containing
use multiline paragraphs, or to enforce a uniform height for the rows.
FrameMaker writes out the
RowHeight statement for use by other programs. It is not used by the MIF interpreter.
Even if the statement is present, the MIF interpreter recalculates the height of each row based on the row contents and the
RowMinHeight and RowMaxHeight statements.

Cell statement

A Cell statement specifies a cell’s contents. It also includes format, straddle, and rotation information as needed. The statement must appear in a
Syntax
<Cell
Row statement.
77
<CellFill integer
<CellColor tagstring
<CellSeparation
<CellLRuling
<CellBRuling
<CellRRuling
<CellTRuling
<CellColumns integer
<CellRows integer
>
integer
tagstring
tagstring
tagstring
tagstring
>
>
>
>
>
>
>
>
<CellAffectsColumnWidthA
<CellAngle
degrees
>
<CellContent
<Notes…>
<Para…>
<Para…>
boolean
Fill pattern for cell, 0–15 (see page 106)
Color for cell (see “ColorCatalog statement” on page 80)
Color for cell; no longer used, but written out by FrameMaker for back­ward-compatibility (see “Color statements” on page 247)
Left edge ruling style (from Ruling Catalog)
Bottom edge ruling style
Right edge ruling style
Top edge ruling style
Number of columns in a straddle cell
Number of rows in a straddle cell
>
Yes restricts column width to cell width
Angle of rotation in degrees: 0, 90, 180, or 270
Cell’s content
Footnotes for cell (see page 123)
Cell’s content, represented in one or more Para statements (see page 124)
Additional statements as needed
>
>
End of CellContent statement
End of Cell statement
Usage
You can use the Rotate command on the Graphics menu to change the CellAngle, but it does not affect the location of cell margins. 270 degrees, use information about aligning text in a cell, see
CellAngle affects only the orientation and alignment of the text flow. When CellAngle is 90 or
PgfCellAlignment to move vertically oriented text closer to or farther from a column edge. For
PgfCellAlignment on page 64.
ADOBE FRAMEMAKER 9
n
PTotal
----------------- -
PWidth×
MIF Reference
MIF uses CellAffectsColumnWidthA only with the TblColumnWidthA statement. The MIF default for computing a cell’s width is
TblColumnWidthA. However, if any cells in the column have <CellAffectsColumnWidthA Yes>,
then only those cells affect the computed column width.
Usage of MIF statements to calculate the width of a column is described in the following sections.
Determining table width
When FrameMaker writes MIF files, it uses TblColumnWidth in the Tbl statement to specify column width. However, filters that generate MIF files can use other statements to determine the table width.
This method Uses these statements To do this
78
Fixed width
Shrink-wrap
Restricted
Proportional
Equalized
TblColumnWidth
TblColumnWidthA
TblColumnWidthA and CellAf-
fectsColumnWidthA
TblColumnWidthP
EqualizeWidths and TblCol-
umnNum
Give a fixed value for column’s width (see page 73)
Fit a column within minimum and maximum values (see page 73)
Use particular cells to determine column width (see page 77)
Create a temporary value for a column width when filtering propor­tional-width columns from another application; the MIF interpreter converts the value to a fixed width (see page 73 and “Calculating propor­tional-width columns,” next)
Apply the width of the widest column to specified columns in the same table (see page 75)
The table example in “Creating an entire table” on page 226 shows several ways to determine column width.
Calculating proportional-width columns
MIF uses this formula to calculate the width of proportional-width columns::
The arguments have the following values:
n
Value of TblColumnWidthP
PT otal
Sum of the values for all TblColumnWidthP statements in the table
PWidth Available space for all proportional columns (TblWidth – the sum of fixed-width columns)
For example, suppose you want a four-column table to be 7 inches wide, but only the last three columns to have proportional width.
The columns have the following widths:
Column 1 has a fixed-width value of 1":
<TblColumnWidth 1">
Column 2 has a proportional value of 2: <TblColumnWidthP 2>
Column 3 has a proportional value of 1: <TblColumnWidthP 1>
Column 4 has a proportional value of 1: <TblColumnWidthP 1>
Available width for proportional columns
Sum of all proportional values
Width for Column 2 is (2/
(PTotal)
PTotal
) x
(PWidth)
is 2 + 1 + 1 or 4.
PWidth
= (2/4) x 6" or 3".
is 7" – 1" or 6".
ADOBE FRAMEMAKER 9
MIF Reference
79
Width for Column 3 or Column 4 is (1/
PTotal
) x
PWidth
= (1/4) x 6" or 1.5".

RulingCatalog statement

The RulingCatalog statement defines the contents of the Ruling Catalog, which describes ruling styles for tables. A document can have only one
RulingCatalog statement, which must appear at the top level in the order given in
“MIF file layout” on page 52.
Syntax
<RulingCatalog
<Ruling…>
<Ruling…>
>
Defines ruling style (see “Ruling statement” on page 79)
Additional statements as needed
End of RulingCatalog statement

Ruling statement

The Ruling statement defines the ruling styles used in table formats. It must appear within the RulingCatalog statement.
Syntax
<Ruling
<RulingTag
<RulingPenWidth
<RulingGap
<RulingColor tagstring
<RulingSeparation
<RulingPen integer
<RulingLines integer
>
tagstring
dimension
dimension
integer
>
>
>
>
>
>
>
Ruling style name; an empty string indicates no ruling style
Ruling line thickness
Gap between double ruling lines
Color of ruling line (see “ColorCatalog statement” on page 80)
Color of ruling line; no longer used, but written out by FrameMaker for back­ward-compatibility (see “Color statements” on page 247)
Pen pattern 0 through 7, or 15 (see page 106)
0 (none), 1 (single), or 2 (double) ruling lines
End of Ruling statement

Color

You can assign colors to text and objects in a FrameMaker document. A FrameMaker document has a set of default colors; you can also define your own colors and store them in the document’s Color Catalog. A FrameMaker document has three color models you can use to create colors: CMYK, RGB, and HLS. You can also choose inks from installed color libraries such as PANTONE
In a MIF file, colors are defined by a Color statement within a ColorCatalog statement. Regardless of the color model used to define a new color, colors are stored in a MIF file in CMYK.
®
.
ADOBE FRAMEMAKER 9
MIF Reference
You can define a color as a tint of an existing color. Tints are colors that are mixed with white. A tint is expressed by the percentage of the base color that is printed or displayed. A tint of 100% is equivalent to the pure base color, and a tint of 0% is equivalent to no color at all.
You can specify overprinting for a color. However, if overprinting is set for a graphic object, the object’s setting takes precedence. When a graphic object has no overprint statement, the overprint setting for the color is assumed.
You can set up color views to specify which colors are visible in a document. The color views for a document are specified in the
Views statement. The current view for the document is identified in a DCurrentView statement.
The color of a FrameMaker document object is expressed in a property statement for that object. In this manual, the syntax description of a FrameMaker document object that can have a color property includes the appropriate color property substatement.

ColorCatalog statement

The ColorCatalog statement defines the contents of the Color Catalog. A document can have only one Color-
Catalog
FrameMaker 9 automatically generates new colors while specific operations are performed. For example, FrameMaker generates new colors when multiple conditional tags are applied to text. These colors are identified by their
statement, which must appear at the top level in the order given in “MIF file layout” on page 52.
ColorTag, which contains the prefix “fm_gen_”.
80
Syntax
<ColorCatalog
<Color…>
<Color…>
>
Defines a color (see “Color statement,” next)
Additional statements as needed
End of ColorCatalog statement

Color statement

The Color statement defines a color. It must appear within the ColorCatalog statement. Note that MIF version
5.5 and later supports multiple color libraries. The
FamilyName
Syntax
<Color
<ColorTag
<ColorCyan
<ColorMagenta
<ColorYellow
and ColorInkName statements.
tagstring
percentage
>
>
percentage
percentage
>
>
ColorPantoneValue statement has been replaced by the Color-
Color tag name
Percentage of cyan (0–100)
Percentage of magenta (0–100)
Percentage of yellow (0–100)
<ColorBlack
<ColorLibraryFamilyName string>
percentage
>
Percentage of black (0–100)
Color library name
ADOBE FRAMEMAKER 9
MIF Reference
81
<ColorLibraryInkName
<ColorAttribute
string
keyword
>
<ColorTint percentage>
<ColorTintBaseColor string
<ColorOverprint boolean>
>
Specifies name of the color library pigment. Older versions of MIF that use ColorPantoneValue can still be read into MIF 5.5 and later. The full ink name must be used.
Identifies a default FrameMaker document color
keyword
ColorIsBlack ColorIsWhite ColorIsRed ColorIsGreen ColorIsBlue ColorIsCyan ColorIsMagenta ColorIsYellow ColorIsDarkGrey ColorIsPaleGreen ColorIsForestGreen ColorIsRoyalBlue ColorIsMauve ColorIsLightSalmon ColorIsOlive ColorIsSalmon ColorIsReserved
100% indicates solid color; less than 100% indicates a reduced percentage of the color
The name of the color from which the tint is derived. If the base color does not exist in the document, black will be used.
Yes indicates overprint is set for the color; No indicates knockout.
can be one of:
>
End of Color statement
Usage
In a MIF file, all colors are expressed as a mixture of cyan, magenta, yellow, and black. The ColorAttribute statement identifies a default FrameMaker document color; the default colors are all reserved (specified by the
ColorIsReserved keyword) and cannot be modified or deleted by the user. A reserved default color can have two ColorAttribute statements, for example:
<ColorAttribute ColorIsCyan> <ColorAttribute ColorIsReserved>
A color tint must be based on an existing color. This has two implications:
If the base color doesn’t exist in the document, black is used as the base color for the tint.
The color value statements (values for CMYK, color family, and ink name) are ignored when included in a tint
statement. However, FrameMaker writes out color value statements for a tint, even though they will be ignored. To modify the color values of a tint, modify the color value statements for the base color used by the tint.

Views statement

The Views statement contains the color views for the document. A document can have only one Views statement, which must appear at the top level in the order given in “MIF file layout” on page 52.
Syntax
<Views
ADOBE FRAMEMAKER 9
MIF Reference
82
<View…>
<View…>
>
Defines a color view (see “View statement,” next)
Additional statements as needed
End of Views statement

View statement

For each color view, the View statement specifies which colors will be displayed, which will be displayed as cutouts, and which will not be displayed at all. The
Syntax
<View
<ViewNumber integer
<ViewCutout
<ViewCutout…>
<ViewInvisible
<ViewInvisible…>
tagstring
>
>
tagstring
>
View statement must appear in a Views statement.
View number (1–6)
Name of color to print as cutout separation
Additional statements as needed
Name of color to hide
Additional statements as needed
>
End of View statement

Variables

All variable definitions for a document are contained in a VariableFormats statement. Both user-defined and system-defined variables are defined by a variable name shows where the variable appears in text (see “ParaLine statement” on page 124).

VariableFormats and VariableFormat statements

The VariableFormats statement defines document variables to be used in document text flows. A MIF file can have only one
layout” on page 52.
VariableFormat statement supplies a variable name and its definition. The statement must appear in a
Each
VariableFormats statement.
VariableFormats statement, which must appear at the top level in the order given in “MIF file
VariableFormat statement. A Variable statement that refers to the
Syntax
<VariableFormats
<VariableFormat
ADOBE FRAMEMAKER 9
MIF Reference
83
<VariableName
<VariableDef
>
<VariableFormat…>
>
tagstring
string
>
>
Name of variable
Variable definition
End of VariableFormat statement
Additional statements as needed
End of VariableFormats statement
Usage
VariableName contains the name of the variable, used later in the MIF file by Variable to position the variable in
VariableDef contains the variable’s definition. A system-defined variable definition consists of a sequence of
text. building blocks, text, and character formats. A user-defined variable consists of text and character formats only.
The system variables for the current page number and running headers and footers can only appear on a master page in an untagged text flow. You cannot insert any variables in a tagged text flow on a master page. You can insert variables anywhere else in a text flow.
For more information about variables and the building blocks they can contain, see your user’s manual or the online Help system.

Cross-references

A FrameMaker document can contain cross-references that refer to other portions of the document or to other documents. A cross-reference has a marker that indicates the source (where the cross-reference points) and a format that determines the text and its formatting in the cross-reference.
All cross-reference formats in a document are contained in one is defined by an
XRefFormat statement. Within text, an XRef statement and a Marker statement indicate where each
XRefFormats statement. A cross-reference format
cross-reference appears.

XRefFormats and XRefFormat statements

The XRefFormats statement defines the formats of cross-references to be used in document text flows. A MIF file can have only one
on page 52.
XRefFormat statement supplies a cross-reference format name and its definition. The statement must appear
The
XRefFormats statement.
in an
Syntax
<XRefFormats
<XRefFormat
XRefFormats statement, which must appear at the top level in the order given in “MIF file layout”
ADOBE FRAMEMAKER 9
MIF Reference
84
<XRefName
<XRefDef
>
<XRefFormat…>
>
string
string
>
>
Cross-reference name
Cross-reference definition
End of XRefFormat statement
More cross-reference definitions as needed
End of XRefFormats statement
Usage
XRefName supplies the cross-reference format name, which is used later by the XRef statement to apply a format to
the text of the cross-reference. The
XRefDef statement supplies the cross-reference format definition, which is a
string that contains text and cross-reference building blocks.
For more information about cross-references and their building blocks, see your user’s manual or the online Help system.

Global document properties

A FrameMaker document has properties that specify the document page size, pagination style, view options, current user preferences, and other global document information. The user sets these properties by using various commands, such as the Document command, the View command, the Normal Page Layout command, and others.
In a MIF file, global document properties are specified as substatements in a provide these property statements, the MIF interpreter assumes the properties specified in information on defaults specified in templates, see page 3.
The
BookComponent statement specifies setup information for files generated from the document. The Dictionary
)
statement contains the user’s list of allowed words for the document.
Document statement. If you do not
NewTemplate. (For

Document statement

The Document statement defines global document properties. A document can have only one Document statement, which must appear at the top level in the order given in “MIF file layout” on page 52.
Document statement does not need any of these property substatements, which can occur in any order. It can also
A contain additional substatements describing standard equation formats. (See , “MIF Equation Statements.”)
Document File Info
For versions 7.0 and later, FrameMaker stores file information in packets (XMP) of encoded data. This data can be used by applications that support XMP. In MIF these data packets are expressed in the <DocFileInfo> statement. This data is generated by FrameMaker in an encoded form, and you should not edit the information. Note that this information corresponds to the values of fields in the File Info dialog box. It also corresponds to the data in the
<PDFDocInfo> statement. However, unlike <PDFDocInfo>, this XMP data also includes the values of the File Info
dialog box default fields for
Creator, Creation Date, and MetaData Date.
ADOBE FRAMEMAKER 9
MIF Reference
PDF Document Info
For versions 6.0 and later, FrameMaker stores PDF File Info in the document file. FrameMaker automatically supplies values for Creator, Creation Date and Metadata Date; these Document Info fields do not appear in MIF statements for PDF Document Info. However, a user can use the File Info dialog box to specify values for Author, Title, Subject, Keywords, Copyright, Web Statement, Job Reference, and Marked. The values for all these values appear in PDF Document Info. A document can also contain arbitrary Document Info fields if they have been entered via an FDK client or by editing a MIF file. In MIF, each Document Info entry consists of one and at least one
A
Key statement contains a string of up to 255 ASCII characters. The Key names a File Info field; in PDF the field
name can be up to 126 characters long. In MIF you represent non-printable characters via hexadecimal representation of a character, and to represent the “#” character. Zero-value hex-codes (
Value statement.
#HH, where # identifies a
HH is the hexadecimal value for the character. For example, use #23
#00) are illegal. In PDF, these hexadecimal representations are
Key statement
interpreted as PDFDocEncoding (see Portable Document Format Reference Manual, Addison-Wesley, ISBN 0-201­62628-4).
Note that a a File Info field name can be up to 126 characters long, and a MIF string can contain up to 255 characters. Some characters in the key string may be hexadecimal representations, and each hexadecimal representation uses three ASCII characters. For example, a However, since a valid MIF string can only have up to 255 ASCII characters, such a
Key of 126 non-printing characters would require 378 ASCII characters.
Key statement would be invalid
in MIF.
The contents of the File Info field is represented by a series of
Value statements. Each value statement can contain
a string of up to 255 ASCII characters. In PDF the File Info contents can contain up to 32765 Unicode characters. To accommodate this number of Unicode characters, FrameMaker generates MIF in the following ways:
It represents the Document Info contents as a series of Value statements, each one 255 ASCII characters long,
or less.
It uses special codes to indicate Unicode characters that are outside the standard ASCII range. Mif represents
Unicode characters as
HHHH are as many hexadecimal values as are required to represent the character.
and
&#xHHHH;, where &#x opens the character code, the “;” character closes the character code,
Note that each Unicode representation of a character uses up to seven ASCII characters. For example, a string of 255 Unicode characters could require as many as 1785 ASCII characters.
For example, The following MIF statements show three possible Document Info fields:
<PDFDocInfo
<Key `Author'> <Value `Thomas Aquinas'> <Key `Title'> <Value `That the Soul Never Thinks Without an Image'> <Key `Subject'> <Value `Modern translation of the views of T. A. concerning cognition; "It is'> <Value ` impossible for our intellect, in its present state of being joined t'> <Value `o a body capable of receiving impressions, actually to understand...'>
> # end of PDFDocInfo
85
Syntax
<Document
<DNextUnique ID>
Window properties
Document properties
Refers to the next object with a <Unique ated by FrameMaker and should not be used by filters
ID
> statement; gener-
ADOBE FRAMEMAKER 9
MIF Reference
86
<DViewRect
X Y W H
<DWindowRect X Y W H>
<DViewScale
Column properties
<DMargins
<DColumns integer
<DColumnGap
<DPageSize
Pagination
percentage
L T R B
dimension
W H
>
>
>
<DStartPage integer
<DPageNumStyle
keyword
>
>
>
>
>
Position and size of document window based on position and size of the document region within containing window; DViewRect takes precedence over DWindowRect
Position and size of document window based on the containing window (including the title bar, etc.)
Current zoom setting
Not generated by FrameMaker, but used by filters to specify text margins; ignored unless DColumns is specified
Not generated by FrameMaker, but used by filters to specify number of columns
Not generated by FrameMaker, but used by filters to specify column gap
Document’s default page size and orientation; if W is less than H, the document’s orientation is portrait; otherwise it is landscape
Starting page number
Page numbering style
keyword
Arabic UCRoman LCRoman UCAlpha LCAlpha ZenLCAlpha ZenUCAlpha KanjiNumeric KanjiKazu BusinessKazu
can be one of:
<DPagePointStyle
<DTwoSides
<DParity
<DPageRounding
boolean
keyword
>
keyword
keyword
>
>
>
Point page number style
keyword
Arabic UCRoman LCRoman UCAlpha LCAlpha
Yes specifies two-sided layout
Specifies whether first page is left or right page
keyword
FirstLeft FirstRight
Method for removing blank pages or modifying total page count before saving or printing
keyword
DeleteEmptyPages MakePageCountEven MakePageCountOdd DontChangePageCount
can be one of:
can be one of:
can be one of:
ADOBE FRAMEMAKER 9
MIF Reference
87
<DFrozenPages
Document format properties
<DSmartQuotesOn
<DSmartSpacesOn
<DLinebreakChars
boolean
boolean
boolean
string
<DPunctuationChars
Conditional text defaults
<DShowAllConditions
<DDisplayOverrides
Footnote properties
<DFNoteTag
<DFNoteMaxH
<DFNoteRestart
string
>
dimension
keyword
<FNoteStartNum integer
>
>
>
>
string
boolean
boolean
>
>
>
Yes if Freeze Pagination is on
Use curved left and right quotation marks
Prevents entry of multiple spaces
OK to break lines at these characters
>
>
>
Punctuation characters that FrameMaker does not strip from run-in heads; these characters override the default punctuation set in
PgfRunInDefaultPunct (see page 63)
Shows or hides all conditional text
Turns format indicators of conditional text on or off
Paragraph and reference frame tag for document footnotes
Maximum height allowed for document footnotes
Document footnote numbering control by page or text flow
keyword
PerPage PerFlow
First document footnote number
can be one of:
<DFNoteNumStyle
<DFNoteLabels
<DFNoteAnchorPos
<DFNoteNumberPos
keyword
string
keyword
keyword
<DFNoteAnchorPrefix
>
>
string
Document footnote numbering style
keyword
Arabic UCRoman LCRoman UCAlpha LCAlpha ZenLCAlpha ZenUCAlpha KanjiNumeric KanjiKazu BusinessKazu Custom
Characters to use in custom document footnote numbers
>
Placement of document footnote number in text
keyword
FNSuperscript FNBaseline FNSubscript
>
Placement of number in document footnote
keyword
FNSuperscript FNBaseline FNSubscript
>
Prefix before document footnote number in text
can be one of:
can be one of:
can be one of:
ADOBE FRAMEMAKER 9
MIF Reference
88
<DFNoteAnchorSuffix
<DFNoteNumberPrefix
<DFNoteNumberSuffix
Table footnote properties
<DTblFNoteTag
<DTblFNoteLabels
<DTblFNoteNumStyle
string
string
keyword
<DTblFNoteAnchorPos
<DTblFNoteNumberPos
<DTblFNoteAnchorPrefix
<DTblFNoteAnchorSuffix
<DTblFNoteNumberPrefix
<DTblFNoteNumberSuffix
Change bar properties
<DChBarGap
<DChBarWidth
dimension
dimension
>
string
string
string
>
>
keyword
keyword
string
string
string
string
>
>
>
>
Suffix after document footnote number in text
Prefix before number in document footnote
Suffix after number in document footnote
Same meaning for the following statements as the corresponding document footnote properties
>
>
>
>
>
>
>
Change bar distance from column
Thickness of change bar
<DChBarPosition
<DChBarColor
<DAutoChBars
Document view properties
<DGridOn
<DPageGrid
<DSnapGrid
tagstring
boolean
boolean
dimension
dimension
<DSnapRotation
<DRulersOn
<DFullRulers
<DBordersOn
<DSymbolsOn
<DGraphicsOff
boolean
boolean
boolean
boolean
boolean
keyword
>
>
>
>
degrees
>
>
>
>
>
>
>
>
Position of change bar
keyword
LeftOfCol RightOfCol NearestEdge FurthestEdge
Change bar color (see “ColorCatalog statement” on page 80)
Turns automatic change bars on or off
Turns on page grid upon opening
Spacing of page grid
Spacing of snap grid
Angle of rotation snap
Turns on rulers upon opening
Turns on formatting ruler upon opening
Turns on borders upon opening
Turns on text symbols upon opening
Yes displays text only
can be one of:
ADOBE FRAMEMAKER 9
MIF Reference
89
<DPageScrolling
keyword
<DCurrentView integer
View Only document properties
<DViewOnly
<DViewOnlyXRef
<DViewOnlySelect
<DViewOnlyNoOp 0x
boolean
keyword
>
keyword
nnn
>
>
>
>
>
Specifies how FrameMaker displays consecutive pages
keyword
Variable Horizontal Vertical Facing
Specifies current color view (1-6)
Yes specifies View Only document (locked)
Changes behavior of active cross-references in View Only document (see page 46)
keyword
GotoBehavior OpenBehavior NotActive
Disables/enables user selection in View Only document, including selection with modifier keys, and sets highlighting style of destina­tion markers for active cross-references (see “Using active cross-refer-
ences” on page 46)
keyword
No (disable user selection) Yes (enable user selection and highlighting) UserOnly (enable selection but not highlighting)
Disables a command in a View Only document; command is specified by hex function code (see page 47)
can be one of:
can be one of:
can be one of:
<DViewOnlyWinBorders
<DViewOnlyWinMenubar
<DViewOnlyWinPopup
<DViewOnlyWinPalette
Document default language
<DLanguage
Color printing
keyword
<DNoPrintSepColor
<DPrintProcessColor
<DPrintSeparations
boolean
boolean
boolean
boolean
>
tagstring
tagstring
boolean
>
>
>
>
>
>
>
No suppresses display of scroll bars and border buttons in document
window of View Only document
No suppresses display of document window menu bar in View Only
document
No suppresses display of document-region pop-up menus in View
Only document
The dotted boundary line of a document is the document-region.
Yes makes window behave as command palette window in View
Only document
The FrameMaker console is the Command palette window.
Hyphenation and spell-checking language for text lines; for allowed keywords, see
Tag name of color not to print; any color not included here is printed. If you have multiple colors you don’t want to print, use multipl e state­ments.
Tag name of process color to print as separation
Yes prints separations
PgfLanguage on page 64
ADOBE FRAMEMAKER 9
MIF Reference
90
<DTrapwiseCompatibility
<DPrintSkipBlankPages
Superscripts and subscripts
boolean
boolean
<DSuperscriptSize percent
<DSubscriptSize percent
<DSmallCapsSize percent
>
>
<DSuperscriptShift percent
<DSubscriptShift percent
>
<DSuperscriptStretch percent
<DSubscriptStretch percent
<DSmallCapsStretch percent
<DRubiSize
percentage
>
>
>
>
>
>
>
>
When printing to a PostScript file, Yes generates postscript opti­mized for use with the TrapWise application
Yes skips blank pages when printing
Scaling factor for superscripts expressed as percentage of the current font size
Scaling factor for subscripts expressed as percentage of current font size
Scaling factor for small caps expressed as percentage of current font size
Baseline offset of superscripts expressed as percentage of current font size
Baseline offset of subscripts expressed as percentage of current font size
Amount to stretch or compress superscript, where 100% means no change
Amount to stretch or compress subscript, where 100% means no change
Amount to stretch or compress small caps, where 100% means no change
The size of the rubi characters, proporti onal to the size of the oyamoji characters (see “Rubi text” on page 215.)
Reference properties
<DUpdateXRefsOnOpen boolean
<DUpdateTextInsetsOnOpen boolean
Acrobat preferences
>
>
<DAcrobatBookmarksIncludeTagNames
boolean
<DGenerateAcrobatInfo
Document-specific menu bars
<DMenuBar string
<DVoMenuBar string
Math properties For more information, see , “MIF Equation Statements.”
Structure properties For more information, see , “MIF Statements for Structured Docu-
Track Text Edit properties
>
boolean
>
>
>
Yes specifies that cross-references are automatically updated when
the document is opened
Yes specifies that text insets are automatically updated when the
document is opened
Yes specifies that each Acrobat Bookmark title begi ns with the name
of the paragraph tag
Yes sets the document’s print options to their required states for
generating Acrobat information
Name of the menu bar displayed by an FDK client when the docu­ment is opened; if an empty string is specified or if the menu bar is not found, the standard FrameMaker menu bar is used
Name of the menu bar displayed by an FDK client when the docu­ment is opened in View Only mode; if an empty string is specified or if the menu bar is not found, the standard view-only menu bar is used
ments and Books.”
ADOBE FRAMEMAKER 9
MIF Reference
91
<DTrackChangesOn boolean>
<DTrackChangesPreviewState integer>
Preserves the On/Off state of the Track Text Edit option.
Preserves the preview state of edited text.
DTrackChangesPreviewState property can have one of the
following states:
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.
WebDAV properties
<WEBDAV
<DocServerUrl
string
> URL of the MIF document on the WEBDAV Server. Any HTTP path is
valid.
Example:
<DocServerUrl `http://mikej­xp/joewebdav/myfile.mif'>
#http://mikej-xp/joewebdav is the path of the server.
<DocServerState> Indicates whether the MIF document is che cked in or checked out on
the WebDAV server.
The DocServerState property can contain one of the following values:
CheckedOut
CheckedIn
> End of WEBDAV Document statement
Miscellaneous properties
<DMagicMarker integer
<Document Document properties
<DNextUnique ID> Refers to the next object with a
Window properties
<DViewRect X Y W H> Position and size of document window based on position and size of
<DWindowRect X Y W H> Position and size of document window based on the containing
<DViewScale percentage> Current zoom setting
Column properties
<DMargins L T R B> Not generated by FrameMaker, but used by filters to specify text
>
Type number of the marker used to represent a delete mark
<Unique ID> statement; gener-
ated by FrameMaker and should not be used by filters
the document region within containing window ; DViewRect takes precedence over DWindowRect
window (including the title bar, etc.)
margins; ignored unless DColumns is specified
ADOBE FRAMEMAKER 9
MIF Reference
92
<DColumns integer> Not generated by FrameMaker, but used by filters to specify number
<DColumnGap dimension> Not generated by FrameMaker, but used by filters to specify column
<DPageSize W H> Document’s default page size and orientation; if W is less than H, the
Volume, chapter, and page numbering properties
Volume numbering
<VolumeNumStart integer> Starting volume number
<VolumeNumStyle keyword> Style of volume numbering
of columns
gap
document’s orientation is portrait; otherwise it is landscape
keyword
can be one of:
Arabic UCRoman LCRoman UCAlpha LCAlpha KanjiNumeric ZenArabic ZenUCAlpha ZenLCAlpha Kanjikazu BusinessKazu Custom
<VolumeNumText string> When VolumeNumStyle is set to Custom, this is the string to use
<VolNumComputeMethod keyword> Volume numbering
keyword
can be one of:
StartNumbering (restart numbering) ContinueNumbering (continue numbering from previous
document in book)
UseSameNumbering (use the same numbering as previous docu-
ment in book)
Chapter numbering
<ChapterNumStart integer> Starting chapter number
<ChapterNumStyle keyword> Style of chapter numbering
keyword
can be one of:
Arabic UCRoman LCRoman UCAlpha LCAlpha KanjiNumeric ZenArabic ZenUCAlpha ZenLCAlpha Kanjikazu BusinessKazu Custom
<ChapterNumText string> When ChapterNumStyle is set to Custom, this is the string to
use
<ChapterNumComputeMethod keyword> Chapter numbering
keyword
can be one of:
StartNumbering (restart numbering) ContinueNumbering (continue numbering from previous
document in book)
UseSameNumbering (use the same numbering as previous docu-
ment in book)
Section numbering
ADOBE FRAMEMAKER 9
MIF Reference
93
<SectionNumStart integer>
<SectionNumStyle keyword>
<SectionNumText string>
<SectionNumComputeMethod keyword>
Starting section number
Style of section numbering
keyword
can be one of:
Arabic UCRoman LCRoman UCAlpha LCAlpha KanjiNumeric ZenArabic ZenUCAlpha ZenLCAlpha Kanjikazu BusinessKazu Custom
When SectionNumStyle is set to Custom, this is the string to use
Section numbering
keyword
can be one of:
StartNumbering (restart numbering) ContinueNumbering (continue numbering from previous
component)
UseSameNumbering (use the same numbering as previous
component)
ReadFromFile (use numbering set for the component’s docu-
ment)
Sub section numbering
<SubSectionNumStart integer>
<SubSectionNumStyle keyword>
<SubSectionNumText string>
Starting Sub section number
Style of Sub section numbering
keyword can be one of:
Arabic UCRoman LCRoman UCAlpha LCAlpha KanjiNumeric ZenArabic ZenUCAlpha ZenLCAlpha Kanjikazu BusinessKazu Custom
When SubSectionNumStyle is set to Custom, this is the string to use
ADOBE FRAMEMAKER 9
MIF Reference
94
<SubSectionNumComputeMethod keyword>
Sub section numbering
keyword can be one of:
StartNumbering (restart numbering) ContinueNumbering (continue numbering from previous
component)
UseSameNumbering (use the same numbering as previous
component)
ReadFromFile (use numbering set for the component’s docu-
ment)
Page numbering
<DPageNumStyle keyword> Page numbering style
keyword
can be one of:
Arabic UCRoman LCRoman UCAlpha LCAlpha ZenLCAlpha ZenUCAlpha KanjiNumeric KanjiKazu BusinessKazu
<DPagePointStyle keyword> Point page number style
keyword
can be one of:
Arabic UCRoman LCRoman UCAlpha LCAlpha
<DStartPage integer> Starting page number
<ContPageNum boolean> Yes means continue page numbering from the previous document
Pagination
<DTwoSides boolean> Yes specifies two-sided layout
<DParity keyword> Specifies whether first page is left or right page
in the book
keyword
can be one of:
FirstLeft FirstRight
<DPageRounding keyword> Method for removing blank pages or modifying total page count
before saving or printing
keyword
can be one of:
DeleteEmptyPages MakePageCountEven MakePageCountOdd DontChangePageCount
<DFrozenPages boolean> Yes if Freeze Pagination is on
Document format properties
<DSmartQuotesOn boolean> Use curved left and right quotation marks
<DSmartSpacesOn boolean> Prevents entry of multiple spaces
<DLinebreakChars string> OK to break lines at these characters
ADOBE FRAMEMAKER 9
MIF Reference
95
<DPunctuationChars string> Punctuation characters that FrameMaker does not strip from run-in
heads; these characters override the default punctuation set in
PgfRunInDefaultPunct (see page 63)
Conditional text defaults
<DShowAllConditions boolean> Shows or hides all conditional text
<DDisplayOverrides boolean> Turns format indicators of conditional text on or off
Footnote properties
<DFNoteTag string> Paragraph and reference frame tag for document footnotes
<DFNoteMaxH dimension> Maximum height allowed for document footnotes
<DFNoteRestart keyword> Document footnote numbering control by page or text flow
keyword
can be one of:
PerPage PerFlow
<FNoteStartNum integer> First document footnote number
<DFNoteNumStyle keyword> Document footnote numbering style
keyword
can be one of:
Arabic UCRoman LCRoman UCAlpha LCAlpha ZenLCAlpha ZenUCAlpha KanjiNumeric KanjiKazu BusinessKazu Custom
<DFNoteLabels string> Characters to use in custom document footnote numbers
<DFNoteComputeMethod keyword> Footnote numbering
keyword
can be one of:
Continue (continue numbering from previous component in
book)
Restart (restart numbering)
<DFNoteAnchorPos keyword> Placement of document footnote number in text
keyword
ΦΝΣυπερσχριπτ ΦΝΒασελινε ΦΝΣυβσχριπτ
<DFNoteNumberPos keyword> Placement of number in document footnote
keyword
can be one of:
can be one of:
FNSuperscript FNBaseline FNSubscript
<DFNoteAnchorPrefix string> Prefix before document footnote number in text
<DFNoteAnchorSuffix string> Suffix after document footnote number in text
Loading...