Skip to main content
cathyneedshelp
Participant
November 11, 2015
Question

I want to somehow designate some of regular body text to be picked up in a cross-reference. How do I do that?

  • November 11, 2015
  • 3 replies
  • 372 views

Would I use markers or elements?

    This topic has been closed for replies.

    3 replies

    Participating Frequently
    November 12, 2015

    In an unstructured document:

    • You can select part of a paragraph as the cross-reference text by setting it to be a run-in paragraph, and using the <$paratext> building block. Format any preceding text as another run-in paragraph, and any following text as a regular paragraph.
    • You can use arbitrary words as the cross-reference text by creating invisible text in an anchored frame outside the main flow, and using the <$paratext> building block. See Problems with spot cross-references.

    In a strucured document:

    • You can select part of a paragraph as the cross-reference text by wrapping it in an element, and using the <$elemtext> building block.
    • You can use arbitrary words as the cross-reference text by setting an attribute to the words (e.g. xreflabel in DocBook), and using the <$attribute> building block.
    Bob_Niland
    Community Expert
    Community Expert
    November 12, 2015
    Arnis Gubins
    Inspiring
    November 11, 2015

    In unstructured mode, all you can do is pick up the entire content available in the <$paratext> building block. There is no marker text available.

    You can kludge this by creating an anchored frame with a text frame that holds the desired text of the cross-ref that must use a unique paratag that has a colour attribute that is set to be invisible in the Color View mode used during the publication step. [Set the Aframe to outside the column  or text frame so that it doesn't  visually affect the appearance of your content flow.]

    In structured mode, IIRC, you need to wrap the desired text in a separate element.