Features or Speed… why not both InDesign?


After a recent post discussing the complications of indexing a rather large InDesign file (1600+pp), it is worth mentioning another issue encountered with the project, namely the reduced speed of InDesign.

There are already several articles concerning “slowdowns” while working with InDesign, namely:



Put simply, the larger the file became, the harder it was to work on. Little things such as placing the text cursor between words resulted in a spinning beachball of death for five minutes before the cursor once again became a text cursor.

Disabling several features in InDesign made the file somewhat workable:

1. Display performance – to these settings :

2. Pages panel – turn off the preview for the actual pages:

3. Turn the preflight panel off:

4. Live screen drawing – never:

5. Dynamic spelling off:

6. Do not use GREP styles or Nested styles
7. Do not use index entries or cross references

While this made the file workable, it was at the expense of the good features of InDesign. The slowdown was to the stage where using a word processor to accomplish the same task was considered!

Within the preferences, there is no ability to control the amount of RAM reserved for InDesign to use, nor is there the ability to control how often InDesign autosaves to its backup… something that is possibly slowing InDesign down even further.

Some of the features of InDesign were not necessary for this task as the project was completely black text supplied by the client, so having a lower quality display performance without seeing the page previews was not an issue. Preflight was not a concern with this particular file given that it was black text within one rather long text-frame and the spelling was to remain as the client provided the artwork.

Initially there was concern that turning GREP styles off would limit the control of “runt lines”. GREP styles had also been used for formatting of particular words, but because no type was going to be added, performing a one-off find/replace using the relevant GREP was able to remove the need for GREP styles. It was amazing to see the difference in speed when the file had the GREP styles turned on, opposed to when they were not applied – in this project the GREP styles were a major contributing factor to the file’s slow performance.

Followers of this blog will be familiar with several GREP styles that have been used to correct names or details within variable data campaigns. After this experience, it would appear that GREP styles are better suited to projects where content will be added dynamically (such as a Data Merged file) or constant alterations need to be made; rather than static documents – especially where no new content will be added.

The project DID have to be indexed (as discussed in a previous post) and found that once the file was indexed, the speed of the file slowed to a crawl.


Never Break-up on a Date… or a name… or a time…

In issue of 52 of InDesign Magazine, Sandee Cohen provides a brilliant and simple solution to a problem that many designers face – how to control widows and orphans on paragraphs (this is separate to page-defined widows/orphans). Download the issue to read about this handy tip.

Her advice is great, but can go one step further. Her solution can be adapted to not just fixing paragraph widows/orphans, but also any situation where a type should not break, such as:

  • Dates (e.g. 31 July)
  • Names (Mr John Citizen)
  • Times (4.00 pm)

The example here is an article about the Adelaide Phenomenon known as “Mad March”. The dates at the end of the article are breaking, and so is an individual’s name. These have been highlighted in Magenta to illustrate what needs to be fixed.


Part of Sandee’s fix, without revealing her magic trick, is to create a unique character style that only has the “no-break” attribute turned on and everything else left off.


The paragraphs in this text have a paragraph style applied that will undergo some GREP style magic. To do this, the paragraph style has to be edited, particularly the GREP styles portion of the dialog box.


Firstly, the dates have to be fixed. Click the “New GREP Style” button and select the “no-break” style that was made earlier, and then in the “To Text” field, type the following:


This will look for any number followed by one space and followed by any month written in full. Anything that matches this will now have the “no-style” applied. Don’t click OK just yet, but click once in the grey box just underneath the field that was just typed to refresh the page.


Fixed. Now let’s fix the name Mr Paul McDermott. Still in the same window, click the “New GREP Style” button again, again using the “no-break” style, but this time in the “To Text” field, type the following:


This will look for any name that has a title, initial or name, and surname. Yes, this is a basic GREP code and a better one could be written to encompass all sorts of names, but for this demonstration it will do. Click OK.


Voila! All fixed. The advantage with using these GREP style fixes as opposed to using non-breaking spaces or forced line breaks is that if the copy changes for whatever reason, many of the forced breaks don’t have to be removed. Non-breaking spaces are a hassle so if they don’t need to be made, why bother?


This article has focused on two instances where a no-break character style (with some GREP style magic) can keep names and dates together, but there are other uses for this such as times, dollar values… the list is up to you. As usual to see how this was done, feel free to download the sample here.

Ninth of November Rumblings

Has been a while since I’ve written a general “What’s going on” post. Many things have happened this year, but among the most noteworthy would be:

Move to Openbook Howden Design & Print

As of 14 November, Openbook Howden will be my new employer, having served at another printer for the last four and a half years and contributing to:

  • 2011 Excellence in Craft award (PICAs) for “Alfred James Company History”
  • 2011 Excellence in Print award (PICAs) for “The art of Jeremy Boot”
  • 2010 Excellence in Digital Craft award (PICAs) “Sir Joseph Banks Journal”
  • Preparing PDFs for Print presentation for the Adobe Users Group of SA (AUGSA)
  • Various VDP, javascript and brain-breaking projects which were undertaken, especially the last VDP 8pp book!

I’ll miss the old crew, but won’t miss one colleague’s constant whistling! Nevertheless, it’s time for a change and to bring on the new projects.

Chance to assist Marc Autret with his “HurryCover 2.0” script

For those not familiar with the name, Marc Autret is a Developer and Graphic Designer at StudioEditorial in France. He is also a brilliant scripter and has produced some must-have scripts that no copy of InDesign should be without, among them being:

  • BookBarcode, a paid script for making the EAN13 barcodes which appear on books;
  • Wordalyzer, a paid script for making “Wordle” style graphics;
  • PageBorder, a free script for applying or removing a border to pages simply so clients can see the trim edge of odd-sized artwork;
  • Speeech, a free script for creating comic-like speech bubble effects;
  • His latest effort, HurryCover 2.0, a beta script (soon to be a paid script) for creating hard cover, soft cover or dust jackets for books.

During the year I had the opportunity to assist with the HurryCover project and, while it worked on the machine at home, would have issues on my old work mac. After several back and forths of versions to test with myself and many other beta testers, Marc has produced a brilliant script which any InDesign user should definitely add to their repetoire. For more information on Marc and his work, visit his website at Indiscripts.

Discovery of two major GREP styles

Since InDesign CS4, the software has supported the pattern-based application of styles better known as GREP styles. Often overlooked by many users, this feature has been invaluable on many VDP projects, but more specifically its ability to:

  • Make “square pegs fit round holes” by being able to auto-size the type based on the length of how many characters were in a line and then adjusting the character height/width percentages; and
  • “Hiding” text by applying no fill/strokes and changing the character width to 1% to literally hide characters which shouldn’t be there.

The odd mention here and there

Even though I wasn’t there, I had noticed that my blog had been referred to in a slideshow by the Paris InDesign Users Group (IDUG) as “Un site à voir pour les fans de la fusion de données!” (A site to see for fans of Data Merge!) The slideshow also featured some of the more complicated examples of Data Merge that I’ve done such as the piecharts and paragraph swapping. To Loic Aigon for mentioning this blog in the show, a big thankyou – Merci Beaucoup!

Also, during the usual posts on the Adobe Forum specifically for InDesign users, the respected and regular contributor to the forum Peter Spier graciously referred to me in one post as being the “Resident Expert of Data Merge”, a title which is quite a compliment. Having said that, like any other user I always learn from others and still have lots to learn myself.

So I think that’s it for now!

Swapping paragraphs during Data Merge

A recent post on the adobe forums raised an old question which I’d been happy to consign to the too-hard basket, and that question was how to import text as part of a data merge. While text can’t be imported into a merge à la importing pictures into a data merge (i.e. can import image files such as JPG, EPS, PDF, TIFF… but not text files such as DOC, RTF etc) I knew there had to be a workaround.

The workaround came in the form of using a field from the data merge to trigger a GREP style. To demonstrate this, I have created an example in the form of this case study:

An electronics store is preparing a mailing of its statements, along with a with compliments slip which is specifically targeted to each customer. The store has prepared a database with an ID to correspond with the statements, the client’s first name, and a code that corresponds to the campaign, which happens to be:

  1. Good payers
  2. Online shoppers
  3. Recently filled out an in-store survey
  4. Long time customers
  5. Dormant customers
  6. Due for a phone upgrade

Each merge has its own text, so the typical way of handling this would be to perform six separate merges, but because the with compliments slips have to go with statements that are printed in ID order and the client does NOT WANT the ID to appear on the with compliments slip, the merge must be prepared once and in order, so this is not an option.

Instead, I have created an InDesign file with two layers – a base with the static data, and then a layer that I have labelled 1 (to represent the good payers). For now, the text for the first campaign is added, along with the letters |xxxx| at the start of each paragraph, and the text is formatted using a paragraph style called changingpara1 – so far, it contains nothing out of the ordinary… yet. This will make more sense soon.

The other campaigns are literally duplicates of layer “1” but named appropriately (2,3,4,5,6) and contain their appropriate content. For the ease of creation, only the base and layer being made are viewed at any time. Until the data is imported, I’m just using first names.

Using the data merge palette, the data “namesdb.txt” is imported, and the |xxxx| portions are replaced with |<<number>>| but still retain their “|” at the start and end of the field code. Again, for ease of working with the layers, only the base and layer being made are viewed at any time.

As Heston Blumenthal would say… this is where the magic happens. With no text selected, two character styles need to be created:


  • Horizontal scale to -1, and
  • no fill nor stroke


  • Black fill only

Now, viewing only layer “1”, the text box is selected and the paragraph style assigned to it is changed, namely:

  • No fill nor stroke, and

  • GREP styles

apply Black style,

to text: ^\|1\|.+

(this will find the start of the line and |1| followed by everything in the paragraph)

apply Hide style,

to text: ^\|1\|

(this will find the start of the line and the |1| only so it can be hidden)

But something unexpected has happened… the type has disappeared! This should happen… so far… pushing on, view only layer two, click on the textbox and in the paragraph styles palette, duplicate changingpara1 BUT change its name to changingpara2 and change the GREP styles this way:

apply Black style,

to text: ^\|2\|.+

(this will find the start of the line and |2| followed by everything in the paragraph)

apply Hide style,

to text: ^\|2\|

(this will find the start of the line and the |2| only so it can be hidden)

Repeat this for the remaining layers, so that layer “3” text has the “changingpara3” paragraph style that, in turn, has the GREP styles which show/hide text with the letters |3| at the start of the paragraph, and so on for the other layers.

After doing this, make sure all the layers are visible and turn the “preview” on the Data Merge palette. Suddenly, the text seems to come to life, responding to the values in the “numbers” field.

The picture above represents the records in the data merge and how they change from record to record. Alternatively, watch the video of how a similar campaign was assembled:

As usual, all files associated with this demonstration are available in the merged PDF file which can be downloaded here.




%d bloggers like this: