Pages

Wednesday, June 12, 2013

FrameMaker Tables & Anchored Frames

Introduction

For my second post about FrameMaker, I thought I would focus on objects with
what I have termed "text-centric outsides." As I explained in my last post
(about FrameMaker), these are objects whose outsides interact with the object
that contains them in a "text-centric" manner. In other words, you can insert
them at a particular point in a text flow and they move along with the text.
There are only two objects that do this: tables and anchored frames. Now, many
books will talk about inserting other types of objects (what I call "graphic
objects") into text but fail to mention that what really happens is FrameMaker
automatically inserts an appropriately sized anchored frame and then sticks
that graphic object inside the anchored frame. In my opinion, it is better to
understand what is really going on. Once you have a solid understanding of the
fundamentals, it is much easier to build up various combinations of these
objects to achieve the desired effect.

As I mentioned in my last post, I will not be repeating all the basic steps
for inserting tables and anchored frames. I assume you already know those
things from reading the "help file" that comes with FrameMaker or one of the
many books that are available. Instead, I tend to dig a little deeper than most
books bother to explain. I like to experiment around the edges and find the
limits of the software I use. This post is based on that experimentation.


Because I am skipping ahead a bit, I thought I should remind you of the
bigger picture: A page is graphic-centric on the inside (what I sometimes call
a "graphic container"). The most important thing that anyone puts on a page (so
important that FrameMaker does it for you, by default) is a text frame. A text
frame is graphic-centric on the outside (what I call a "graphic object") and
text-centric on the inside (what I will call a "text container"). It is within
this text that text-centric objects, tables and anchored frames, can be
inserted.

Before I really get started, I want to reiterate that, in this post, I am
only concerned with the outside behavior of these objects. Obviously, both of
these objects are containers. Tables contain blocks of text and anchored frames
contain graphics. However, through various tricks, making use of our knowledge
of the inside and outside behavior of all of FrameMaker's objects, it is
possible to nest anything you want in these frames. You can end up with
graphics in a table or text in an anchored frame. It is even possible to wind
up with a table inside an anchored frame, if that is what you need to do to get
the job done. In the end, you will decide which frames you will nest inside
which other frames in what combinations, to get the final effect you want.
However, I will discuss all those tricks in later posts. I apologize up front
for all the references this post makes to later posts. There are so many
workarounds and tricks one can use within FrameMaker that one could easily get
lost down a dozen rabbit holes. For this post, I want to focus on choosing
between tables and anchored frames based on their text centric behavior on the
outside.

Similarities

The first, and most basic, characteristic of text-centric objects is that
they are inserted into, or "anchored" to a particular location in a flow of
text. When { View / Text Symbols } is turned on. The point at which the object
is inserted into the text shows up as an upside-down T, called the anchor. The
anchor moves with the text, so if text is inserted above the anchor, then your
object will be moved down. Copying and pasting the text with the anchor will
copy and paste the anchored object as well. If you have read any books about
FrameMaker, you already know this.

There are many different settings that FrameMaker uses to control the
positioning of these objects. I put them into three main groups. The first is
what FrameMaker calls the "Start " setting for tables and the "Anchoring
Position" for anchored frames. Most of these settings provide a kind of
override to the default of always locating the object just under the text line
with the anchor. They do things like force the table to always appear at the
top of the next page, or setting the anchored frame to "run into" the
paragraph. Both have some similar settings and some that are unique to that
object. I will go into detail about these later in this post. The next two
groups of settings control the horizontal and vertical positioning, the last
one providing finer control than the Start and Anchoring Position settings
generally provide.

The standard location for both tables and anchored frames is just below the
line of text which contains the anchor. When in this standard location, both
can be set to one of five basic horizontal positions: Left, Center, Right, Side
Closer to Binding, and Side Farther from Binding. In all of those positions,
regardless of the size or position of the object, the text can only appear
above or below the object. So, if you make your table or anchored frame
relatively narrow, then you will end up with a lot of white space on the sides.
(Now, you could fill this white space with other objects, but I will discuss
that in a separate post.)

This is where the similarities end, however. Some of the Start or Anchoring
Position settings turn on or allow additional horizontal or vertical position
settings for one or the other of the types of objects.

Differences (Oh, the Differences!)

Rather than make your eyes bleed with a detailed text description of all the
different combinations that are possible, I have put together this handy little
diagram.


In looking at this diagram, you can see that there is considerable overlap
in that almost all Start or Anchoring Position settings allow you to choose a
generic horizontal position such as left, center, or right. However, it is the
differences between tables and anchored frames which are of most interest,
because they help us figure out which object to use in order to get the
positioning features we need for our documents. I will now discuss some of
these major differences and how they affect our choices.

Give me the Runaround

In my view, the most significant and useful difference between tables and
anchored frames is that only anchored frames have a setting which allows
paragraph text to run around the side of the object. This is the "Run into
Paragraph" Anchoring Position setting. However, this setting comes with its own
set of limitations. For one, the top of the anchored frame will always be
located even with the top of the first line of the paragraph, regardless of
where in the paragraph you place the anchor. There are some workarounds for
this which I will discuss in another post.

Secondly, if any of the paragraphs which will wrap around the anchored frame
have any tab settings, numbers, bullets, or differently indented first lines,
then you will really only want to place the anchored frame on the right side of
the page. This is because, if you put it on the left side, then all those
indents and tab stops get messed up. Essentially, they get "left behind" on the
left side of the page. In other words, the indents and tab stops stay at the
same physical location on the page and the text just gets kind of crammed over
to the right by the anchored frame. If the first line was supposed to be
indented, it will no longer appear indented. If there was supposed to be a tab
between a bullet and the text, it will no longer show as a space between that
bullet and text. This is in contrast to how runaround works when a graphic
object is placed on a page, overlapping a text frame. In that case the indents
and tab stops are moved over, to the right of the graphic object. Again, there
are some possible workarounds but those workarounds sacrifice the ability to be
anchored to a particular point in the text. I will discuss those tricks in
another post.

Technically, the text also "runs around" an anchored frame if it is set to
the "At Insertion Point" anchoring position. However, that only works for the
one line where the anchor is located. So it looks pretty awful if the anchored
frame is not pretty close to the height of a line of text.

Floating Away

While both tables and anchored frames can be set to "float" and the end
result is similar, they are configured differently. With tables, "Float" is one
of the choices for the "Start" setting. If you want a table to "float" you only
have one option for its location. It will always appear either below the
current line or at the top of the next page if it doesn't fit below the current
line. The most important feature of "Float" is that text after the anchor will
fill in the space between the anchor and wherever the table winds up, making a
tidier looking document. So "Float" essentially acts just like the "Anywhere"
Start setting but allows the text to fill in instead of creating huge swaths of
empty space.

With anchored frames, "Floating" is an optional check box that you can
enable when either the "Below Current Line," "Top of Column," or "Bottom of
Column" Anchoring Positions are chosen. This gives the same effect as with
tables, wherein the text is allowed to fill in the space between the anchor and
the anchored frame, however, you have a little more control as to where the
anchored frame winds up. For instance, tables can never be forced to always
appear at the bottom of a page.

Fine for Fine Positioning

Two anchored frame anchoring position settings which look tempting are the
"Outside Column" and the "Outside Text Frame" settings. They are tempting
because they allow very fine horizontal and vertical positioning. You can
essentially place the anchored frame anywhere you want in relation to the
anchor and the edge of the text frame. However, unless you really do want the
frame to be outside the column or frame, you had better be prepared to do some
fancy workarounds with paragraph tags. This is because: Although it is possible
to move the anchored frame to a position inside the frame or column, it will
simply overlap any text within the frame. I have even tried placing, within the
anchored frame, graphic objects which normally allow text runaround. It is as
if that runaround information does not carry through to the outside of the
anchored frame. Thus, even text frames inside an anchored frame will just
overlap any text under that anchored frame. So, to get things to look right,
you would have to use paragraph tags with large "Space Above" or "Space Below"
settings to make room for the anchored frame. However, there are easier
workarounds, which I mention below.

Usually, these two settings are only used to actually place something
outside the column or frame, such as a warning symbol associated with a
paragraph or if your book format includes small diagrams in wide margins.
Another use is to place a decorative bar above or below a header paragraph. A
third possible use is when you really do want something to overlap text in a
frame, perhaps an oval around a paragraph heading or something like that.

Stick to the Point

While the ability to set an anchored frame to appear right "At Insertion
Point" is a significant difference, it only has limited usefulness. It is only
handy when you want to insert a graphic symbol or mathematical equation in line
with one line of text and that symbol is about the same height as that line of
text. If the graphic or equation is too much taller than the font, then it just
looks awful.

I Need My Space

Another difference is that only tables allow a "Space Above" setting.
However, this same effect can be achieved simply by leaving empty space at the
top of an anchored frame. So, I do not consider this to be a significant
difference at all.

Strategies

From the differences listed above, it almost looks as if it is just best to
always go with anchored frames. But that would be an oversimplification. Tables
do have their uses too. Here are some strategies you can use to help decide
which object to use.

Sometimes a Table is Just a Table.

If your table is wide, won't leave too much white-space on either side, and
you are happy with it just sitting there in the middle of the column, then just
use a simple table. I really don't recommend putting a table on the right or
left side because that will just make the empty space look bigger and more
"looming." However, it is possible to design your table with an extra-large,
straddled cell on one or both sides with room for a graphic to fill in that
unused space.

Sometimes a Table is not Just a Table.

FrameMaker does not allow multiple tables or anchored frames to sit next to
each other within a single text frame. So, I sometimes use a table as an
organizer for other things. If I want three diagrams to sit next to each other
on the page, but I want them to all have their own figure number, title, and
caption, then I will create a one-row, three-column table and plop my figures
in those table cells. (Again, I will discuss my tricks for using tables and for
getting figures to behave properly in separate posts.)

Fine Positioning

There are ways to get fine horizontal and vertical positioning with both
tables and anchored frames.

At first glance it appears that one cannot obtain any kind of fine
positioning with a table. However, with creative use of empty rows and columns,
it is possible to place the visible contents of a table anywhere within the
space where tables are normally allowed (below the anchor point and within the
column or frame). If you really need a table to appear outside of a column or
frame boundary, there is a trick for that too. (Yes, in a later post )

If you want to locate the contents of an anchored frame in an exact
location, rather than accept the standard left, center, right horizontal
settings, but want it to be located at least partially within the column or
frame, then it is actually easiest to simply make the anchored frame larger
than what it contains and then position its contents as you see fit. You can
even make the contents of an anchored frame appear partially outside of its
containing frame or column without using the "Outside Column" or "Outside Text
Frame" Anchoring Positions. (See a later post.)

Start Positions Only Available for Tables

Many of the start positions for tables do not have counterparts for anchored
frames. So, if you need your object to start at the top of the next page, the
top of the next right page, or the top of the next left page, then you will
need to use a table.

When Only an Anchored Frame Will Do

Though, they have been mentioned above, here is a quick review of the things
that can only be done with anchored frames: If you need text to run around the
object, then you need to use an anchored frame. (Again, it is possible to nest
a table inside a text frame which is inside an anchored frame but I will
discuss this trick in a later post.) If you want a small graphic or equation to
appear right in the line of text, then you have to use an anchored frame set to
the "At Insertion Point" Anchoring Position. These are usually so small that it
wouldn't make any sense to try to put a table or other object in that anchored
frame. If you want to put something outside the text frame or column which sits
beside existing text then you need an anchored frame set to the "Outside
Column" or "Outside Text Frame" anchoring Position. This method also works if
you want something to overlap the text in the column or text frame. Finally,
there is no way to force a table to always wind up at the bottom of the page.
For that you will need an anchored frame.

Conclusion

Well, I hope this post has helped you understand the similarities and
differences between how tables and anchored frames can be configured to behave.
I chose to start with these because they are the most beneficial when creating
"living" documents that may change over time or need to be revised often. Being
able to anchor an object to a point in the text, then "set it and forget it" is
an incredible time saver. Remember, though, this is just the start. Once you
have decided which to use in order to get your "whatever" to show up where you
want it, there are then many many options for how to get that "whatever" inside
the container you have chosen. As I have repeated many times in this post:
Those are topics which I will cover in later posts.



The contents of this post is Copyright © 2013 by Grant Sheridan Robertson.

No comments:

Post a Comment