Tuesday, May 7, 2013

Understanding FrameMaker Frames

Most books and manuals about software merely state what each menu item does or which menu items you need use in order to accomplish some specific goal. Interestingly, that goal always seems to be something that can be easily done by pulling down a couple of menus. I almost always find myself wanting more. I want to know why the software behaves as it does. Is there some underlying philosophy or grand design? This post is an attempt to provide a little help in this regard, for people who use Adobe FrameMaker.


Due to the rich complexity of how frames and objects can be used within FrameMaker, it is easy to get overwhelmed by all the different combinations. However, after working with FrameMaker, I have discovered a very simple conceptual model for classifying this behavior which, I believe, will make it a lot easier to understand and keep track of how these things work and work together.

I will not pretend to teach you everything you need to know about FrameMaker in one post. Nor will I bore you with yet another detailed repetition of menu items. I will assume you have already read through the user manual and are familiar with the basic operations necessary to create and manipulate frames and other objects on a page. What I attempt to teach in this post is a way of looking at how these things work in the background so that it will be much easier for you to remember what fits within what and why, as well as help you figure out solutions to difficult design problems using a rational plan rather than a lot of trial and error.
For the bulk of this discussion I will cover frames in general, whether they appear on a body, master, or reference page. All the aspects of frames discussed in this part apply directly to frames on body and reference pages. At the end, I will discuss the special considerations for frames placed on master pages.

Basic Classification and Contexts

In FrameMaker, there are four different types of frames: text frames, graphic frames, tables, and anchored frames. For each of these frames we must consider two different contexts for their behavior: how they act on the inside and how they act on the outside. In other words, how a frame interacts with frames and objects within it, its child objects, and how a frame or object interacts with the frame that contains it, its parent frame. Finally, there are only two different basic orientations for this behavior: graphics-centric and text-centric. So we end up with a two-by-two matrix with each frame type fitting into one of two behavior classifications for each context:
Inside Outside
Graphics-Centric Anchored Frame
Graphics Frame
Text Frame
Graphics Frame
Text-Centric Text Frame
Anchored Frame

What I have found is that all frame-types that are graphics-centric on the inside behave the exact same way on the inside. In addition, pages behave exactly the same on their "insides" as does a graphic frame, even though pages have their own special behavior on the "outside." Similarly, all frame-types that are graphics-centric on the outside behave the exact same way on the outside. Drawing or graphic objects exhibit this exact same behavior with respect to the frames that contain them. So, we can add a few items to our matrix:
Inside Outside
Graphics-Centric Anchored Frame
Graphics Frame
Text Frame
Graphics Frame
Drawings & Graphics
Text-Centric Text Frame
Anchored Frame

In addition, certain other objects such as equations and text lines can be fit into one of the two behavior classifications as far as their outsides are concerned, even though they have their own special behaviors on the inside. So our final matrix looks like this:
Inside Outside
Graphics-Centric Anchored Frame
Graphics Frame
Text Frame
Graphics Frame
Drawings & Graphics
Text Line
Text-Centric Text Frame
Anchored Frame

What all this means is: If we understand only two different behavior orientations in two different contexts, we can easily understand how FrameMaker handles frames and most of its objects.

Matching Outsides to Insides

Fortunately, remembering what objects can be placed inside what other objects is as simple as "like matches like."  Any frame that is graphic-centric on the inside can only contain objects that are graphic-centric on the outside. Similarly, any frame that is text-centric on the inside can only contain objects that are text centric on the outside. So, using the matrix above, for any object in the "Inside" column, all you have to do is look in the table-cell to the right to see what it can contain. 

(Note: For brevity, from now on I may refer to objects with graphic-centric outsides simply as "graphics" and frames which are graphic-centric on the insides as "graphic-containing frames." It may be a little confusing to think of a text frame as a "graphic" but otherwise reading the rest of this would get really tedious.)


Graphic-Centric Insides

I will start with how pages, graphic frames, and anchored frames all behave on the inside because every FrameMaker document essentially starts with a blank page, onto which we must place objects. (Now, Adobe has done us a favor and already placed some text frames on the blank pages of the default master pages of the standard templates. However, for this discussion we are going to pretend they weren't so nice. The page itself is what you really start with. It is what you are left with if you delete everything you can possibly delete.) So, knowing what we can put on these pages and how those things will behave is essential.

What many will find hard to believe is that a blank page truly does behave exactly the same on the inside as an anchored or graphic frame. But it is true. Anything you can do inside an anchored or graphic frame can be done directly on a page and vice versa. If you try to draw a line over a text frame that is on a page, that line actually belongs to the page itself. It just happens to show up on top of the text, but its coordinates and behavior are entirely associated with the page, instead of the text frame.  If you place a drawing directly on a page, the edges of the page will crop that graphic just as a graphic or anchored frame would. The only things you can't do to a page are move them around and place them inside of other frames. But then that is "outside" behavior.

Can Contain

  • All frames with graphic-centric insides can contain any object which has a graphic-centric behavior on the outside, including all of the following:
    • Text Frames
    • Graphic Frames
    • Equations
    • Drawn Graphics
    • Graphics Images
    • Text Lines
  • Frames with graphic-centric insides cannot contain any frames or other objects with text-centric outsides. For instance, you cannot type text or place a table directly on a page, these must be in a text frame. This may not be readily apparent because Adobe sticks a text frame on every page by default. But, if you try to stick a table in a margin or on a page with no text frame, you will see what I mean.

Getting Things in There

Keeping in mind that the only things you are going to "get in there" are in the list above:
  • Drag & Drop
    • The top-most anchored frame, graphic frame, or page under the mouse pointer when you drop receives the object. If you drop a graphic object onto a text frame, the object will "fall through" to the top-most anchored frame, graphic frame, or page.
  • Importing or Pasting
    • Make sure there is no cursor in any text by clicking on a page margin or by using the "Select Object" tool to select an anchored or graphic frame, then import or paste the graphic object. The selected page or frame receives the object.
There are several additional notes that are important to remember:
  • An object can be "contained" by a page, graphic or anchored frame yet still appear in front of a text frame. This is because of the phenomenon described in the next note…
  • If you attempt to take a "graphic" and drag & drop that into a text frame, "ownership" of that "graphic"  will pass through to whichever graphic frame, anchored frame, or page most directly contains that text frame though FrameMaker will then display the object as if it is on top of the text. This can be very confusing, so be careful and make sure you specifically want this behavior.
  • If you place the cursor into a text frame and then either "copy and paste" or insert a graphic object into said text frame, FrameMaker will automatically create an anchored frame to contain that graphic object. This can also be confusing, especially since so many authors who write about FrameMaker seem to confuse this with actually pasting graphics directly into a text frame. If you don't realize that you have created another frame, it can be very hard to keep control of your document's appearance.
  • Equations are actually graphic-centric objects on the outside. So inserting an equation into a text frame will also automatically create an anchored frame.

Positioning of Contained Objects

All of the objects contained by one of these frames are positioned within said frame by X and Y coordinates. These coordinates are based on the upper left hand corner of said containing frame.

Text-Centric Insides

There are two types of frames that are text-centric on the inside: tables and the ubiquitous text frame. On any page, there is likely to be at least one text frame.

Can Contain

  • These can only contain objects which have text-centric outsides, namely: anchored frames and tables. However, a table cannot directly contain another, nested table.
  • Text frames cannot directly contain any "graphics."
    • The only way to get a "graphic" inside of a text frame is to place an anchored frame in that text frame and then put the "graphic" into that anchored frame.
    • Importing a graphic file (or inserting any "graphic" using copy & paste) while the text cursor is active, automatically creates an anchored frame inside the selected text frame which then contains said inserted graphic.
    • Attempting to draw graphics on a text frame effectively places that graphic in whichever graphics frame, anchored frame, or page which was directly under the mouse pointer when you started drawing. This happens for each different thing you draw. So if you have a lot of different graphic containing frames scattered under your text frame, all these drawings may end up in different containing frames.
    • Attempting to import or paste a "graphic" while the text frame itself is selected (but no cursor in text) effectively places that "graphic" in whichever graphics frame, anchored frame, or page most directly contains this text frame.
    • Attempting to drag & drop a "graphic" onto the frame (whether the text frame itself is selected or the text cursor is active) effectively places that "graphic" in whichever graphics frame, anchored frame, or page is directly under the mouse pointer when dropped.

Getting Things in There

  • Inserting a new table or anchored frame:
    Make sure the blinking text cursor is in the text in the location where you want the anchor to be located and do one of the following:
    • Choose { Table / Insert Table… }
    • Choose { Special / Anchored Frame… }
  • Cut & Paste:
    • The best way to select an entire table or anchored frame is to select the anchor within the text. Once the anchor is selected, you will see the entire table or anchored frame is highlighted. Cut or copy the object then past it into the new position in the text.
(See the manual for more information on how to use each of these objects.)

Positioning of Contained Objects

The positioning of these objects is always relative to the marker that was automatically placed in the text when the object was created. (Use { View / Text Symbols } to show or hide these markers.) Even though this positioning is controlled through a separate dialog for each of those objects, the options that are available are very similar for all of them. (See the user manual for the options that are available for each object and what effects those options will have.)


Graphic-Centric Outsides

As explained above, these objects can only be placed directly into frames with graphic-centric insides, specifically: pages and graphic or anchored frames.

An important point to remember about these types of objects is that they are unanchored. They are not attached to any specific text or marker. Even if the cursor is in text when one of these is created, imported, or pasted the object ends up being unanchored. All of this is explained more fully under "Text-Centric Insides: Can Contain," above.

When creating one of these objects by drawing (such as drawing a line or drawing a text or graphic frame) the position at which you begin drawing determines which graphics-containing frame will contain the drawn object.

Text-Centric Outsides:

As explained above, these objects can only be placed directly into text frames or tables.
Objects with text-centric outsides have the following characteristics:
  • Inserted at a point in the text, so you have to set the cursor location first.
  • Stays with text.
  • Position controlled via dialog choices indicating position relative to text. You cannot just move them with the mouse pointer.
  • You can copy or cut & paste the object to a new location in the text by selecting the anchor.
    • Make sure { View \ Text Symbols } is selected.
    • It is best to select with the shift and arrow keys instead of the mouse cursor. The mouse cursor will always select at least one character next to the anchor.

General Characteristics:

In general, all of these frames have the following characteristics:
  • Text runaround can be set to control how text near the object will behave.
  • Crops anything inside of it.
    • This is a great way to determine if an object is really contained in a frame. Just reduce the size of the  frame and see if that object gets cut off at the edge of that frame.

Master Pages

Text frames on master pages are divided into two additional types: Template Text Frames and Background Text Frames, each with the following additional characteristics.

Template Text Frame

  • Text here does not show up on the associated body page.
  • May be part of a flow.
    • Assigned at least some flow tag by default but this can be modified.
  • When a body page is created, based on this master page, all Template Text Frames are copied onto the new body page. This is an important point to remember. Once the body page has been created, this text frame behaves exactly the same as a regular text frame on that page.

Background Text Frame

  • Text here shows up on body page but can't be edited there.
  • Can contain variables and the value of each variable is based on the body page being displayed or printed at the time.
  • Not part of any flow.
All other objects and/or frames placed on the master page also show up in the background of the body pages created from this master and cannot be selected or edited from that body page.


I'm not really big on conclusions that simply repeat the introduction. So, I will just say that I hope this helps you use FrameMaker with less frustration. In future posts I plan to expound on this inside-outside--graphic-text conceptual model and show how it can be used to better plan what frames to use where in order to get the effect you want in various situations.

No comments:

Post a Comment