Search for items

Searching documents and books

If you are searching in a document (Edit > Find/Change), FrameMaker begins searching at the insertion point and continues through the document. It searches only pages of the type the insertion point is on—for example, only body, master, or reference pages. When FrameMaker reaches the end of the document, it continues the search at the beginning. After searching the main text flow, it searches other text in the document. Because FrameMaker searches flow by flow rather than page by page, it sometimes appears to jump around within the document while searching.

If you are searching throughout a book, FrameMaker begins searching from the active document, or from the first document of the book if the book window is active, and continues searching until all documents in the book have been searched. If a document cannot be opened, the document is skipped and a message appears in the Book Error Log.

Note: When you are searching through a book, bookmap, or DITA map, you cannot search the master or reference pages.

In addition to text, you can search for any of the following items in a selection, in a document, or throughout an entire book. You can also search in a map from the Resource Manager view.

Text formats and tags
Character format properties, or specific paragraph or character tags. In structured FrameMaker, Element appears right after text, so you can search for element tag, attribute name, attribute value, or simultaneously for all three.

Markers
Any markers, regardless of their marker types, markers of a specific type, or markers that contain specified text.

Cross-references
Any cross-references, regardless of their formats, cross-references that use a specific format, or unresolved cross-references—cross-references that FrameMaker is unable to update. When an unresolved cross-reference is found, the marker text of the cross-reference appears in the Find box.

Text insets
Any text imported by reference. You can also search for unresolved text insets—insets that cannot be updated from their sources. However, you can’t search for graphics subscribers or OLE linked objects. (To list OLE links, choose Edit > Links.)

Variables
Any variables, regardless of their variable names, or specific variables.

Rubi
Any rubi text, when Japanese fonts are installed on your system.

Anchored frames
Frame that contains graphics and helps you locate them. Graphics placed in non-anchored frames are not found.

Footnotes
Any text or table footnotes.

Tables
Any tables regardless of their table format tags, or tables with a specific tag.

Conditional text
Any conditional text, regardless of its condition tags, text with specific condition tags, or unconditional text. FrameMaker cannot find conditional table rows or hidden conditional text.

Automatic hyphen
Words that are hyphenated automatically.

Text and character format on the clipboard
Text that matches the clipboard text, capitalization, and character formatting.

Searching for Unicode text

FrameMaker uses the UTF-8 encoding format. Therefore, every character in a .fm or XML document containing Unicode-encoded text uses multiple bytes. As a result, only the string entered in the Find field is used to perform the search operation.

Searching in a range is applicable only to Unicode characters, and users can search for any character that belongs to the Basic Multilingual Plane (BMP). Unicode code points can also be used for performing search and replace operations. For example, you can provide \uXXXX as the input to locate a character that has code point XXXX. Thus, to search for letter “A” whose code point is u+0041, you can specify \u0041 in the Find/Change dialog box.

A code point is any value in the Unicode codespace, which is a range of integers from 0 to 10FFFF16. This particular range is defined for the codespace in the Unicode standard only. Other character-encoding standards sometimes use other codespaces.

You can also use wildcard characters while searching for Unicode text.

Note: In Asian documents with multibyte characters, the bracket characters [ ] do not work as wildcards.

Replacing items

When changing items, keep the following in mind:

  • If you choose Change or Change & Find when no text is selected in the document, FrameMaker inserts or applies the replacement item at the insertion point.

  • The Clone Case option in the Find/Change dialog box maintains the capitalization in the source text. For example, if you select Clone Case and type tea in the Find box and coffee in the Change box, FrameMaker replaces tea with coffee and Tea with Coffee.

  • You can type any text, including special characters not found on the keyboard—for example, em spaces and paragraph symbols.

  • You can’t change marker text by using the Find/Change dialog box. If FrameMaker finds the marker text you specify, and if you type different text in the Change box and click Change, FrameMaker replaces the marker—not the marker text—with the text in the Change box. To change marker text, use the Special > Marker command.

Search for backslashes and wildcard characters

You can enter any characters in the Find/Change box. However, the following characters require special treatment:

  • For backslashes, specify two backslashes (\\) in the box. A single backslash usually indicates a special character.

  • For wildcard characters used as ordinary characters, when the Use Wildcards option is selected, precede the wildcard character with a backslash in the box.

Search for character format properties

  1. Copy the text with the character format you want to find. FrameMaker uses only the first 126 characters copied into the clipboard.

  2. Select Edit > Find/Change. In the Find/Change dialog box, choose Text & Character Formats In Clipboard from the Find pop‑up menu. Don’t type the text you want to find in the Find box.

  3. Click Find.

To prevent FrameMaker from applying a property to found text, set the property to As Is.

After making some changes in the Change To Character Format dialog box, you can reset the dialog box to match the format of the current text by pressing Ctrl+Shift+F9.

Search for special characters and nonprinting symbols

You can search for any text, including single characters, phrases, and special characters that aren’t on your keyboard. You’ll need to type the backslash sequence.

For example, you could find empty paragraphs by searching for \P\p (beginning of paragraph followed by end of paragraph).

You can use most of these sequences for both searching and replacing—for example, replacing a forced return symbol with an end-of-paragraph symbol. However, you cannot replace with the end-of-flow, start-of-paragraph, start-of-word, or end-of-word sequence.

Search for markers

FrameMaker uses markers for cross-references, indexes, and other purposes. It can find any type of marker or just the marker type you specify. When text symbols are visible, a symbol indicates a marker.

FrameMaker can also find markers with specific marker text.

  1. In the Find/Change dialog box, do one of the following:

    • To find any marker in the document, choose Any Marker from the Find pop-up menu, and leave the Find box blank.

    • To find a specific type of marker, choose Marker Of Type from the Find pop-up menu, and enter the marker type in the Find box.

    • To find a marker with specific text, choose Marker Text from the Find pop-up menu, and enter the marker text in the Find box.

  2. Click Find. If the Marker dialog box is open (Special > Marker), the marker text for the found marker appears there.

Important: If you want to replace the text in a found marker, use the Marker dialog box to edit the marker text. If you use the Find/Change dialog box, you’ll replace the marker rather than the marker text.

Search for conditional text

You can search for visible text that has specific condition tags. When FrameMaker finds visible conditional text, it selects all adjacent text that uses these condition tags.

FrameMaker cannot find conditional table rows.

  1. Make sure that the text with the condition tags you want to find is visible.

  2. In the Find/Change dialog box, choose Conditional Text from the Find pop‑up menu.

  3. Do the following:

    • To find text with a particular condition tag, move the condition tag to the In list.

    • To find text that doesn’t have a particular condition tag, move the tag to the Not In scroll list.

    • If you don’t care whether found text has a particular tag, move the tag to the As Is scroll list.

    • To find all conditional text, move all tags to the As Is scroll list.

    • To find unconditional text, select Unconditional.

    Note: To move a condition tag between scroll lists, select the tag and click an arrow, or double-click the tag. To move all tags from one scroll list to another, select a tag in the list and Shift-click an arrow.
  4. Click Set, and then click Find.

Regular expression search and replace

You can use regular expressions in the WYSIWYG view of structured as well as unstructured documents to search for and replace (substitute) text-based items in a document. This means that you can use regular expressions to search for text, marker text, footnotes, or paragraph tags. However, this search and replace option is disabled for items such as markers and cross references.

Since FrameMaker uses the Perl regular expression syntax, by default, for a quick start tutorial, see perlrequick.

See the video, Regular expressions.

For more information on Regular Expressions, see Peter Grainge's website.

To perform a regular expression search

Use a regular expression to search for dates with the dd-mm-yyyy format in a document.

  1. Open the Find / Change dialog.

  2. Enter the following regular expression in the Find box:

    [\d]{2}-[\d]{2}-[\d]{4}
  3. Choose the Regular Expressions find option and click Find.

To perform a regular expression search and replace

The regular expression replace functionality allows you to replace parts of the search result but based on the result itself. For example, you can use this functionality to change the date format of dates in a document from dd-mm-yyyy to mm-dd-yyyy. To do this, you need to use the regular expression capture functionality to capture portions (using brackets) of the match and replace them on-the-fly (using the dollar notation).

Use a regular expression to search for dates with the dd-mm-yyyy format in a document and replace (substitute) dates found in this format to mm-dd-yyyy

  1. Open the Find / Change dialog.

  2. Enter the following regular expression in the Find box:

    ([\d]{2})-([\d]{2})-([\d]{4})
    Note: The date, month, year parts of the regular expression are enclosed in parenthesis. This ensures that the regular expression engine remembers these values for each search result.
  3. Choose the Regular Expressions find option.

    Next, you need to use the regular expression substitution syntax to replace only the parts that you enclosed in parenthesis.

  4. In the Change box, enter the following substitution:

    $2-$1-$3

    $2 is the second (month) enclosed part. $1 is the first (date) enclosed part. So when using the substitution syntax, you interchange the $1 and $2 results from the search.

Configuring the regular expression engine in FrameMaker

FrameMaker uses the boost engine for Regex. For more information on Boost, see boost.org.

You can write the regular expressions using the following syntax:

By default, you use the Perl regular expression syntax to write regular expressions in FrameMaker. However, to use either the Grep or Ergrep regular expression syntax, you need to update the RegularExpressionSyntax flag in the maker.ini.

Troubleshoot a search

If you don’t find the item even though you’re sure it is there, check the Find/Change dialog box for the following possible problems:

  • Text spelling.

  • Number and type of spaces.

  • Search options.

  • Hidden conditional text.

  • Insertion point on master page when searching a master page.

  • Selection of Book option when searching entire book.