16

I'm trying to use the following as a field in word:

{ = { NumPages } - 1 }

And I get the following error:

!Syntax Error, {

I seem to be using the right format per Microsoft. Any ideas? Thanks as always.

Mark Williams
  • 559
  • 5
  • 9
  • 16

3 Answers3

25

The following are the steps that you will have to follow to do what you are after:

  1. Press Alt+F9 to reveal the field codes.
  2. Select the whole of the {NUMPAGES} field including the { and }
  3. Press Ctrl+F9 - this will place a pair of braces { } around the NUMPAGES field so that it now looks like:

    { {NUMPAGES} }
    
  4. Between the { {, insert an = sign, and between the } } insert -1 so that the field now looks like:

    {={NUMPAGES}-1}
    
  5. Now press Alt+F9 to hide the field codes and select the field, which will still probably shown the total number of pages and press F9 to update the fields. You should now have the result that you are after.

Previewing the document will also update the fields as will printing it if the Update Fields box is checked under the Tools>Options>Print menu item (newer versions will put it in File>Options>Display).

enter image description here

The main thing to remember when working with fields is that you must use Ctrl+F9 to insert a pair of { }. Typing them in from the keyboard does not work.

krowe
  • 5,493
  • 1
  • 24
  • 31
  • I'm still getting the syntax error message. See my code in the original answer - it is identical to your code. Thanks for taking the time to answer. – Mark Williams Sep 28 '14 at 11:37
  • 1
    It may look the same but if you don't follow these instructions to the letter it is not the same. I've tested this myself and I assure you that it is correct. – krowe Sep 28 '14 at 11:49
  • Thanks, @krowe! I confirm that your instructions work. The main thing to remember part, about using Ctrl+F9 to insert curly braces, is what did the trick for me. – georgebrindeiro Apr 06 '18 at 20:42
  • @krowe, I followed your instruction, but at last returns **!Invalid Character Setting**. – mgae2m Jan 14 '19 at 04:01
  • @mgae2m If it says that then it means that you did NOT follow my instructions. This is why I told you to be careful and follow the instructions as they are written; not as you expect them to be. – krowe Jan 14 '19 at 05:52
  • @krowe I stumbled on this answer because I also had the `!Invalid Character Setting` error. For me, the solution was to reset some of the regional settings of Windows 10 (Control Panel -> Change date, time, or number formats -> Additional settings -> Reset). – David Schuler Feb 22 '21 at 15:16
3

For those who can't get it right using Mark's advice: I have a Word 2010 and for me the trick is to add each pair of braces using Ctrl+F9. Don't type {NUMPAGES}. Type NUMPAGES, select it and press Ctrl+F9 instead.

Vladipolis
  • 31
  • 1
  • Also applies to Word 2016. I noticed that the generated braces were in bold font (like those inserted around the entire field) whereas my typed braces were in regular font. – ygoe May 21 '23 at 19:52
2

@Vladipolis, what you wrote is THE key to this whole strange operation. I could not get math involving page references to work until I followed your instructions. In short, each field needs to be an independent "object", or it won't work.

In my case, I wanted to get the count of pages, excluding the number of pages in the section.

This does not work (even though it would be a lot easier if it did!):

  1. Type = { NUMPAGES } - { SECTIONPAGES }
  2. Select that entire block of text and press Ctrl+F9(this will actually fail to turn it into a proper field even though it might look like it worked)

This does work:

  1. Press Alt+F9 to reveal field codes
  2. Type NUMPAGES
  3. Select NUMPAGES and press Ctrl+F9 to turn it into a proper field
  4. Type SECTIONPAGES to the right of the { NUMPAGES } field
  5. Select SECTIONPAGES and press Ctrl+F9 to turn it into a proper field
  6. Type = to the left of the { NUMPAGES } field
  7. Type - between the { NUMPAGES } and { SECTIONPAGES } fields
  8. Select = { NUMPAGES } - { SECTIONPAGES } and press Ctrl+F9 to turn the whole thing into a proper field (of nested fields!)
John T.
  • 301
  • 2
  • 3
  • 7