Skip navigation
Currently Being Moderated

Question/need help with cross-reference formats (FM8, Windows)

Jun 1, 2009 5:08 PM

I kneel before you, humbled and nearly broken.  Any advice would be much appreciated.  First, the specs:


Version: FrameMaker 8.0p277

O/S: Windows XP Pro SP3


The situation: I'm working with a massive document (1,600+ pages), broken out into 36 discrete documents.  Most are fairly small, but four of the documents run over 100 pages (110, 138, 260, and 274).  There is quite a bit of cross-referencing, both internally and between the documents, and the ultimate aim is not just to print, but to produce a set of cross-referenced PDFs.


For many days, I have been applying cross-reference markers and setting up the actual cross-references.  On page 136 of the 274-page doc, after editing a cross-reference format definition and clicking [Add], up popped the following: "Cannot add more cross-reference formats to this document."  The current number of cross-reference formats in the document is 102 (I think... I've been weeping heavily and may be slightly off, but it's close).


So my burning question is: Is there a limit to the number of cross-reference formats you can have in a document?  If so, is it by number of formats? Total number of characters?  I can't find any reference on the web to a limit on the number of cross-reference formats -- all I know is what that error message is telling me.


I had already deleted the pre-set formats, so all of these formats apply to actual cross-references, and I cannot delete any of those without causing the targets to revert to plain text and lose their navigability.


I'm already plotting work-arounds in my head, but none of them are very clean, or easy, or achieve my desired end, which is to end up with one set of master FM files.


I will attempt to cling to the flotsam of my ruined project while hoping against hope that someone out there has an answer, and quick.

  • Currently Being Moderated
    Jun 1, 2009 8:22 PM   in reply to brendanmburns

    I'm a bit confused about why you would need that many cross-ref =formats= as opposed to just the cross-ref source and destinations.


    Even huge doc systems usually have just a handful of formats, e.g. "For more info, see page ##", "see Figure ##", and so on, so only a few formats. And then when you want to insert an x-ref instance, e.g. "blah, blah, see Figure 22" you would


    1. Insert > Special > Cross-Reference,

    2. choose the source type (paragraph or marker),

    3. select the exact source

    4. choose one of the handful of formats from the dropdown men

    5. hit insert to add the cross-ref to your content.


    It sounds like you're also doing something with the "Edit Format" box -- but, um... what?

    Mark as:
  • Currently Being Moderated
    Jun 1, 2009 8:57 PM   in reply to brendanmburns

    As Sheila says, why are there so many different FORMATS? Does each cross-reference have to appear in a visually different style than the others? You can have thousands upon thousands of cross-references in the documents, but the formats that are used to make them are limited to about 100.


    Most documentation only has several formats. Then to make the cross-ref, one finds the target paratag or spot-cross-reference and selects the format style to apply to that information.


    Can you explain step-by-step what you're doing when making the cross-references and what format changes you need to make between the different types of cross-references.


    If you are in the situation where you need to have different content in the cross-reference from what is actually in the paragraph that you have selected, there are other techniques for handling this that do not involve additional cross-ref formats.

    Mark as:
  • Currently Being Moderated
    Jun 1, 2009 10:34 PM   in reply to brendanmburns

    brendanmburns wrote:


    Is there a better way to include specific text for each individual cross-reference without eating up a cross-reference format each time?


    Absolutely! Since you need to include content that is different from the actual heading, you need to slip-in an "invisible" heading that has your required content just before the content you're actually cross-referencing.The ideal way would be for FM to use markers for this, but that's another story and definitely a wish list item.


    So how does one do that?


    You need to create an additional paratag that will be the "invisible" one. You also need to create a unique colour (that visually stands out on the page for editing purposes). You will then use FM's colour Views to make this colour invisible for final output, but you can toggle it on at any time for maintenance.


    Let's assume that you've now created a paratag "HeadingHidden" that uses colour "Invisible".


    Immediately before the heading that you need to cross-reference with the different content, insert the HeadingHidden paratag with the desired content, e.g. the "Section 1.2.3 Triage Nurse Duties".


    Ok so, now you have two paragraphs with similar headings, but you don't want to see both and the new one takes up space, so how do you get rid of it? If you try using Conditional text to hide it, but this will also hide the contents from the cross-ref function, so that's a no go. However, since you have this paratag set to display in the Invisible colour, you can use FM's colour views (View > Color > Views) to turn off the colour from being displayed or output. However, as far as FM is concerned all of the information is still there and available, it's just not visible. You can think of this as FM's layer function.


    To turn off the colour, open up the VIews, select View 6 and then move the colour "Invisible" from the left "Normal" panel to the right panel that says Invisible and click the Set button. Voila, the extra paragraph is now gone.To quickly see what's going on use the shortcuts "<esc> v 1" to toggle the colour on and "<esc> v 6" to toggle it off.


    BUT wait, there's a visible gap in your document now! How do you get rid of that?


    You now need to use the Space Above/Below property of the paratag to make the paragraph that is below ride back up and over top of the now "invisible" paragraph. You'll need to fine tune the numbers depending upon the font and size selected, but the basic technique is as follows.


    In the HeadingHidden paratag set the Space Below to be the negative value of the default Line Spacing for the font (e.g. -14pt). In the following paragraph (with the different heading), set the Space Above to be the same negative value as used in the HeadingHidden below value (e.g. -14pt). This will then force the paragraph below to sit on top of the one above it.


    Now if you use the shortcut "<esc> v 6" to turn off the hidden paragraph, your document should look as it did before you started doing all of this.


    Now to make the cross-reference, simply select HeadingHidden as the paragraphs to display for the targets, select the appropriate entry, select a format that uses a <$paratext> building block and Bingo! you've got what you want without using up any extra cross-ref formats.


    The bonus is that you can also now use these hidden entries in bookmarks for PDFs instead of the unwanted text.


    To make maintenance easier, you can create a couple of sub-templates (or MIF snippets) that has just the HeadingHidden and whatever paratag follows it that change the Space/Above below values so that you can quickly move the paragraphs apart (so that they don't sit on top of each other while you're editing), so that you can see what is being entered. Then when you're ready to create output, re-apply the template with the "neagtive" Space Above/Below to move them back together, apply the hidden view and you're all set.


    It sounds more complicated than it is to use, but unless you're into custom Framescript development, you're going to be up a creek using the Formats to create unique cross-refs.


    If this still seems too complicated, you can always try using true hypertext markers ("newlink" for named destination targets and "gotolink" for the jumps) and then insert the source text that you want and apply a character tag that changes something in the character properties for the text to limit the hyoertext hotspot. But you have to ensure that every named destination is unique, and you have to remember to precisely enter the exact named destination name in your gotolink to make the jump. This is a much larger maintenance issue, though initially it may seem easier.


    Good luck.

    Mark as:
  • Currently Being Moderated
    Jun 2, 2009 6:13 AM   in reply to brendanmburns

    This may be another alternative. Put the text that you want in the cross-reference in one paragraph and then follow it by another paragraph with the rest of the text. In other words, split the paragraph into two paragraphs. Then make the first paragraph a run-in paragraph. Visually, it looks like one paragraph but is really two. Then you simply cross-reference the first paragraph using a building block that displays the content of the entire paragraph. This assumes that the content you want to appear in the cross-reference is always at the beginning of each two-paragraph pair.


    I do not do this, so there may be other issues of which I am unaware.

    Mark as:
  • Currently Being Moderated
    Jun 2, 2009 6:57 AM   in reply to brendanmburns

    brendanmburns wrote:



    Two semi-rhetorical questions -- first, why isn't this type of information more widely available (I have a book from Scriptorium that is quite good, but nothing like this level of detail); and second, given that FM is such an excellent publishing tool, why isn't this basic functionality more of a core feature rather than a multi-level magic trick?


    Thanks again... you haven't just given me a solution; you've helped me think differently about the entire process.


    Glad to see that you understand and will be able to make use of this. As far as your questions go, this info is more of a logical deduction based upon  FM's functions/capabilites. Most reference and training material explain how to use specific aspects of a tool, e.g. how to use a hammer to pound in a nail. I prefer to build something. In the process, showing how to use the hammer & nails (along with the saw, planes, chisels, glue & sandpaper) and to show dependencies of various tools needed to get the end result.


    Regarding why FM doesn't have this functionality - it sort of does when using structured FM. One can use either an in-line element or an attribute for the cross-references, but in unstructured FM, we're out of luck. Spot-cross references would have been ideal, if the user defined contents could be used. I guess it just wasn't thought all the way through when initially implemented. You have a valid use-case, and should file a wish list item at

    Mark as:
  • Currently Being Moderated
    Mar 29, 2012 7:48 AM   in reply to Arnis Gubins

    Has this been updated for FrameMaker 10? Seems pretty complicated to me, otherwise. We often use text in a paragraph to link to sections by a different name. I would use hyperlinks (as in Word), but cross-refs were recommended when I asked. But I don't see how to put specific text in the cross-ref - needed about 50% of the time, and we have lots of cross-refs or links (when we convert to PDF or RoboHelp).

    Mark as:
  • Currently Being Moderated
    Mar 29, 2012 7:53 AM   in reply to Suzy2001

    My go-to reference text is the Unstructured FM 8 book by Sarah O'Keefe from Scriptorium - as a PDF it's next to nothing & it's still helps with FM10 how-tos, even though the UI has changed

    Mark as:

More Like This

  • Retrieving data ...

Bookmarked By (0)