Applying Styles with GREP

Say you have a book with numbered chapters and numbered sections, such that Chapter 1 has first-level sections 1.1, 1.2, 1.3, etc., Chapter 2 contains sections 2.1, 2.2, and so on. These sections can have subsections—second-level sections—numbered 1.1.1, 1.1.2, etc. This could go on, but let's assume that we're dealing with texts that have two levels of section numbering. The documents you're processing have no styles applied to them at all, so you're starting from scratch. Let's say that you use paragraph style secA for first-level sections and secB for the second-level. How can we use GREP to save us from at least part of the tedium of finding the section headings in the documents and applying the appropriate styles to them?

First we need to have an idea what those section headings in fact look like in the documents and devise an expression that catches them all. Well, they are series of digits and dots, with a space between the number and the body. It turns out that some sections end in a dot, other don't; and that some have a space between number and body, others a tab, and yet others combinations of these. All these variants are still straightforward to manage. To apply first-level styles, do this:

Find what: ^(\d\d?)\.?\s+

Change to: $1.\t <and set paragraph secA in Change Format>

(You could do this interactively to be on the safe side, or automatically if you know for certain that the expression captures just section headings.) What we do is this: we ...

Get GREP in InDesign CS3 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.