Formatting Fields
When a field inserts data from another source, such as from a bookmark or an external text file, the formatting of the original is inserted, too. For example, suppose that you bookmark the text The New Deal in one section of your document, and you create a bookmark for it called NewDeal. Now, when you insert that bookmarked text elsewhere in the document with the {Ref NewDeal} field, the inserted text appears bold and in italic.
That’s the basic default for the formatting, but there are some ways to circumvent that, as described in the next several sections.
Preventing the Formatting from Changing
What happens if you change the formatting of the original and then update the field? That depends on a switch. Ordinarily, the formatting would change, but you can prevent it from changing by using the \* MERGEFORMAT switch. For example:
{ Ref NewDeal \* MERGEFORMAT }
You can also employ MERGEFORMAT to lock in any manual formatting you have applied to the field.
Specifying Font Formatting for a Field
To apply specific font formatting to the text displayed in a field, toggle on the field code display and then format the first character in the field name the way you want the field result to be. (Font formatting in this context includes font, size, color, and attributes such as bold, italic, and underline.)
For example, with the {Ref} example from the preceding section, suppose that you want to format that field’s result as italic. Select the “R” in “Ref” and click the Italic button on the mini toolbar that appears. Then add \* charformat to the end of the code string. (This part is not required if the field has no arguments.)
{ Ref NewDeal \* charformat }
Then, update the field (F9) to see the change.
Specifying a Numbering Type
Numeric fields can use any of several types of characters to represent the numbers, such as Arabic (1, 2, 3), Roman (I, II, III), and so on. To specify the type of numbering, use the \* switch followed by the appropriate code. The easiest way to set a numbering type is in the Field dialog box; it provides a list of the available types. Alternatively, you can use switches in the field code, as shown in Table 16.3. (Note that the codes are case sensitive; alphabetic differs from ALPHABETIC, for example.)
Table 16.3. Codes for Numbering Types
Numbering |
Switch |
Example |
Notes |
1, 2, 3 |
\* Arabic |
23 |
|
a, b, c |
\* alphabetic |
w |
After the 26th letter, the letters start repeating: 27 would be aa, 28 would be ab, and so on. |
A, B, C |
\* ALPHABETIC |
W |
Same as preceding except uppercase. |
i, ii, iii |
\* roman |
xxiii |
|
I, II, III |
\* ROMAN |
XXIII |
|
1st, 2nd, 3rd |
\* Ordinal |
23rd |
|
First, Second, Third |
\* Ordtext |
twenty-third |
|
One, Two, Three |
\* Cardtext |
twenty-three |
|
Hex |
\* Hex |
17 |
Hexadecimal numbering. Each place is 16, so 23 would be 1 Χ 16 plus 7. |
Dollar Text |
\* DollarText and 00/100 |
Twenty-three words for the numbers. This is the format traditionally used for writing checks. |
Converts numerals to written-out |
Constructing a Custom Numeric Format
A numeric field’s number format (aka the numeric picture) controls the appearance of the number in cosmetic ways, such as its number of decimal places, its presence of currency symbols or percent signs, and so on.
The easiest way to set the number format is in the Field dialog box; a list of available types is provided. It is much easier to construct the codes this way than to build them manually. Alternatively, you can use the \# switch, followed by the numbering format in quotation marks. For example:
{ FileSize \# "#,##0" }
If you want to build the numbering format code manually, see Table 16.4 for the symbols to use.
Table 16.4. Codes for Numeric Pictures
Character |
Purpose |
Notes |
# |
A number if present; otherwise, a blank space. Rounds off extra fractional digits. |
Use this to limit a number to a maximum number of decimal places, like this: #.##. Any places not needed do not appear. |
0 |
A number if present; otherwise, a zero. |
Use this to force a number to a minimum number of decimal places, like this: 0.00. Any places not needed appear as zeros. |
$ |
Places a literal dollar sign in the field result. |
|
+ |
Places a plus or minus sign in front of any field result other than zero. |
This is not a literal plus sign; it changes to a minus sign for a negative number. |
– |
Places a minus sign in front of negative numbers. |
This is not a literal minus sign; it does not appear for a positive number. |
. |
Places a literal decimal point in the field result. |
Use this to separate # or 0 codes to show where in the number those codes are referring to. For example, 0.0# indicates a required digit before and after the decimal point in the number and an optional second decimal place if needed. |
, |
Places a literal comma in the field result. |
Use this to separate hundreds from thousands to the left of the decimal point: #,###.##. It does not necessarily conform to common usage that dictates a comma every third place; you could just as easily set up one like #,0 that would place a comma between the first and second digits. |
; |
Separates multiple options for a number. |
You can have separate formatting sections for positive, negative, and zero numbers, in that order. For example, $###.00;($###.00),$0.00. |
text |
Adds literal text to the format. |
Enclose in single quotes. For example, use this to include the word Dollars after the number: ###.00 ‘Dollars’ |
Constructing a Custom Date or Time Format
When you select a date or time from the Date and Time dialog box or from the Field dialog box, a list of sample formats appears. Choosing a format from one of those locations relieves you of the need to manually construct a date/time picture with switches.
However, in some cases, the format you want might not be available on the list. In such situations, you must manually construct the needed code for the switch.
For date and time fields, a \@ switch is used, followed by the desired formatting codes in quotation marks. For example:
{ Date \@ "MMMM d yyyy" } { Time \@ "hh:mm AM/PM" }
The code is a combination of placeholders and literal characters. The valid literal characters are colon (:), dash (-), and slash (/). They separate the parts of the date or time. Typically, colons separate hours, minutes, and seconds in times, and dashes or slashes separate months, days, and years in dates.
Table 16.5 shows the valid characters for placeholders.
Table 16.5. Codes for Date or Time Formats
Characters |
Purpose |
Sample Code |
Sample Result |
M |
Month number, 1 through 12 |
{ Date \@ “M” } |
8 |
MM |
Month number, 01 through 12 |
{ Date \@ “MM” } |
08 |
MMM |
Three-letter month abbreviation |
{ Date \@ “MMM” } |
Aug |
MMMM |
Full month name |
{ Date \@ “MMMM” } |
August |
d |
Day number, 1 through 31 |
{ Date \@ “d” } |
5 |
dd |
Day number, 01 through 31 |
{ Date \@ “dd” } |
05 |
ddd |
Three-letter day of the week abbreviation |
{ Date \@ “ddd” } |
Tue |
dddd |
Full day of the week |
{ Date \@ “dddd” } |
Tuesday |
yy |
Two-digit year |
{ Date \@ “yy” } |
14 |
yyyy |
Four-digit year |
{ Date \@ “yyyy” } |
2014 |
h |
Hour on 12-hour clock, 1 through 12 |
{ Time \@ “h” } |
3 |
hh |
Hour on 12-hour clock, 01 through 12 |
{ Time \@ “hh” } |
03 |
H |
Hour on 24-hour clock, 0 to 23 |
{ Time \@ “H” } |
3 or 17 |
HH |
Hour on 24-hour clock, 00 to 23 |
{ Time \@ “HH” } |
03 or 17 |
m |
Minutes, 0 to 59 |
{ Time \@ “m” } |
4 |
mm |
Minutes, 00 to 59 |
{ Time \@ “mm” } |
04 |
AM/PM |
AM or PM, uppercase |
{ Time \@ “hh:mm AM/PM } |
03:04 AM |
am/pm |
am or pm, lowercase |
{ Time \@ “hh:mm am/pm } |
03:04 am |