Skip to main content
Inspiring
January 20, 2015
Answered

Some cross-references are dead in pdf

  • January 20, 2015
  • 2 replies
  • 2897 views

(Unstructured FM12 on Win7, but this probably predates FM12).

Does a thread exist for this in another forum?

I see inconsistent behavior of cross references. In FM, Ctrl+Alt-click consistently works.

In the pdf, clicking on some cross references works while others are dead.

When I delete all content of the source FM file, save, and then create two simple new targets and cross-references to them, behavior in FM and the pdf is as expected. No dead links.

When I create a new FM file from one of the blank templates, then create two simple new targets and cross-references to them, behavior in FM and the pdf is as expected, like in the previous example. No dead links.

So perhaps my real FM file is corrupt?

Maybe, but MIF washing the file does not seem to help.

Uh: Help!

Best regards,

This topic has been closed for replies.
Correct answer Mike-Hardy

Optimize your book file for PDF.

  1. Open your book file.
  2. Choose Format > Document > Optimize PDF Size > Options
  3. Set the dialog as follows:
    Optimize Size Of: [All Linked Documents]
    Previously Optimized Files: [Force Optimization]
    Prompt When Opening: [uncheck]
    Prompt When Saving: [uncheck]
    Optimized Files: [Overwrite Existing Files]
    Errors: Cancel On Error: [check]
  4. Click Set
  5. Choose Format > Document > Optimize PDF Size > Optimize File

There might be some more dialogs on which to click OK or some other default. FrameMaker should then report that it has optimized n files, where nmatches (or exceeds) the number of documents in your book. If I've got the details wrong, RTFM.

Save As PDF, and all should be OK.

If that doesn't work, then Save As PDF again. In the PDF Setup dialog, choose the Links tab. Check the "Create Named Destinations..." box. This will create a substantially larger PDF file, so the first option is the better one if it works.

2 replies

Mike-HardyCorrect answer
Participating Frequently
January 23, 2015

Optimize your book file for PDF.

  1. Open your book file.
  2. Choose Format > Document > Optimize PDF Size > Options
  3. Set the dialog as follows:
    Optimize Size Of: [All Linked Documents]
    Previously Optimized Files: [Force Optimization]
    Prompt When Opening: [uncheck]
    Prompt When Saving: [uncheck]
    Optimized Files: [Overwrite Existing Files]
    Errors: Cancel On Error: [check]
  4. Click Set
  5. Choose Format > Document > Optimize PDF Size > Optimize File

There might be some more dialogs on which to click OK or some other default. FrameMaker should then report that it has optimized n files, where nmatches (or exceeds) the number of documents in your book. If I've got the details wrong, RTFM.

Save As PDF, and all should be OK.

If that doesn't work, then Save As PDF again. In the PDF Setup dialog, choose the Links tab. Check the "Create Named Destinations..." box. This will create a substantially larger PDF file, so the first option is the better one if it works.

Inspiring
January 27, 2015

Mike-Hardy,

Thanks. It worked upon the first Save As PDF.

Uh: why did it work?  What did it change?  Or maybe a better question is: where do I read to learn what it changed?\

Edit: Well, as far as the MIFs are concerned, the only thing that "changed" is: the following line is now in the target paragraph to which cross references had failed:

  <PgfReferenced Yes>


Best,

Inspiring
January 27, 2015

FrameMaker keeps a record in each paragraph of whether it is the target of a cross reference (the PgfReferenced property in the MIF). Sometimes, it gets this wrong.It then doesn't create a Named Destination in the PDF. Without the Named Destination, the PDF link doesn't work.

The Optimize command and options that I suggested force this setting to be re-evaluated for all paragraphs in your document.

The alternative I suggested (the "Create Named Destinations..." box in the PDF Setup) forces a Named Destination in every paragraph of the PDF. So links work, but there are a lot of unused Named Destinations that bloat your PDF.


Mike-Hardy,

Thanks for the follow-up!

Best,

Bob_Niland
Adobe Expert
January 21, 2015

Does the referencing text or the source text (target of xref) by any chance have any Character Formatting applied?

Inspiring
January 21, 2015

Error7103,

The answers are Yes and No.

Every xref to every heading paratag works.

  • Every heading paratag has "Default ¶ Font" in its Character Format dialog box.
  • The xref formats used in cross references to those targets use the <l-link> chartag in their Character Format dialog boxes.
  • So in this set of examples, every xref uses a condition tag, points to a target in which the Character Format dialog box is not empty, and each of these behaves as expected in the pdf.

The target of every other cross reference uses a paratag in which Character Format is something other than Default ¶ Font. Important example: fgc-FigCaption uses the <b-Bold> chartag.

For test purposes, I created a fresh, content-free target at the end of the file, a figure caption without a figure. Of course the target paratag is fgc-FigCaption. I then created a cross-reference to that fresh target.

  • The xref format is: [<l-Link><$paranum><le-/Link>]. So it uses literal brackets and two chartags.
  • I applied a condition tag to this cross-reference. Condition Show/Hide is Show All and Show Condition Indicators is set, so everything is (supposed to be) visible.
  • This cross-reference behaves as expected in the pdf.

[Editing 1 resumed here]

I also created a set of cross- references to real targets with content, figure caption paragraphs with caption text. Each of these cross references fails in the pdf, whether the markers in the targets are conditional or unconditional, even after Update References > All Cross References. (Some of the targets were originally conditioned, and so were their xrefs. For test purposes, I removed all conditions from the target markers. That pdf still does not work.)

The xref formats of these failing cross references are:

  • <$paranum>
  • [<$paranum>]
  • [<l-Link><$paranum><le-/Link>], which is the same code as the working reference to the fresh target (described above).

I'm not sure what to do next. Maybe delete all the content of the file except the references and targets? Then MIF that?