## 6.2 Style File

The style file format is very simple. It is a list of <specifier, attribute> pairs. There are two types of specifiers (input and output). The pairs don't have to obey any particular order in the file. A line lead by %' is a comment. The following is a list of all the specifiers and their respective arguments where <string> is an arbitrary string delimited by double quotes ("..."), <char> is a single letter embraced by single quotes ('...'), and <number> is a nonnegative integer. The maximum length of a <string> is 144. Notice that a backslash must be escaped (by an extra backslash) in the string quotation. Anything not specified in the style file will be assigned a default value, which is shown on a separate line. This file can reside anywhere in the path defined by the environment variable INDEXSTYLE.

### 6.2.1 Input Style Specifiers

#### 6.2.1.1 actual <char>

Default: @

The symbol which indicates that the next entry is to appear in the actual index file.

#### 6.2.1.2 arg_close <char>

Default: }

This is the closing delimiter for the index entry argument.

#### 6.2.1.3 arg_open <char>

Default: {

This is the opening delimiter for the index entry argument.

#### 6.2.1.4 encap <char>

Default: |

The symbol which indicates that the rest of the argument list is to be used as the encapsulating command for the page number.

#### 6.2.1.5 escape <char>

Default: \\

The symbol which escapes the next letter, unless its preceding letter is escape. In other words, quote is used to escape the letter which immediately follows it. But if it is preceded by escape, it does not escape anything.

Notice that the two symbols must be distinct.

#### 6.2.1.6 keyword <string>

Default: "\\indexentry"

This is the command which tells Make-Index that its argument is an index entry.

#### 6.2.1.7 level <char>

Default: !

The delimiter which denotes a new level of subitem.

#### 6.2.1.8 quote <char>

Default: "

quote is used to escape the letter which immediately follows it, but if it is preceded by escape, it is treated as a ordinary character. These two symbols must be distinct.

#### 6.2.1.9 range_close <char>

Default: )

The closing delimiter indicating the end of an explicit page range.

#### 6.2.1.10 range_open <char>

Default: (

The opening delimiter indicating the beginning of an explicit page range.

### 6.2.2 Output Style Specifiers

#### 6.2.2.1 page_compositor <string>

Default: "-"

This specifier is used to separate a range of page numbers.

Officially undocumented!

#### 6.2.2.2 preamble <string>

Default: "\\begin{theindex}\n"

The preamble of actual index file.

#### 6.2.2.3 postamble <string>

Default: "\n\n\\end{theindex}\n"

The postamble of actual index file.

#### 6.2.2.4 setpage_prefix <string>

Default: "\n \\setcounter{page}{"

The prefix of the command which sets the starting page number.

#### 6.2.2.5 setpage_suffix <string>

Default: "}\n"

The suffix of the command which sets the starting page number.

#### 6.2.2.6 group_skip <string>

Default: "\n\n \\indexspace\n"

The vertical space to be inserted before a new group begins.

Default: ""

The header prefix to be inserted before a new letter begins.

Default: ""

The header suffix to be inserted before a new letter begins.

Default: 0

The flag indicating the condition of inserting new letter header. Default is 0, which means no header. Positive means insert an uppercase letter between prefix and suffix. Negative means insert a lowercase letter.

Default: "Symbols"

Heading for symbols to be inserted if headings_flag is positive.

Default: "symbols"

Heading for symbols to be inserted if headings_flag is negative.

Default: "Numbers"

Heading for numbers to be inserted if headings_flag is positive.

Default: "numbers"

Heading for numbers to be inserted if headings_flag is negative.

#### 6.2.2.14 item_0 <string>

Default: "\n \\item "

The command to be inserted between two primary (level 0) items.

#### 6.2.2.15 item_1 <string>

Default: "\n \\subitem "

The command to be inserted between two secondary (level 1) items.

#### 6.2.2.16 item_2 <string>

Default: "\n \\subsubitem "

The command to be inserted between two level 2 items.

#### 6.2.2.17 item_01 <string>

Default: "\n \\subitem "

The command to be inserted between a level 0 item and a level 1 item.

#### 6.2.2.18 item_x1 <string>

Default: "\n \\subitem "

The command to be inserted between a level 0 item and a level 1 item. The difference between this and previous is that in this case the level 0 item doesn't have any page numbers.

#### 6.2.2.19 item_12 <string>

Default: "\n \\subsubitem "

The command to be inserted between a level 1 item and a level 2 item.

#### 6.2.2.20 item_x2 <string>

Default: "\n \\subsubitem "

The command to be inserted between a level 1 item and a level 2 item. The difference between this and previous is that in this case the level 1 item doesn't have any page numbers.

#### 6.2.2.21 delim_0 <string>

Default: ", "

The delimiter to be inserted between a level 0 key and its first page number. Default is a comma followed by a blank.

#### 6.2.2.22 delim_1 <string>

Default: ", "

The delimiter to be inserted between a level 1 key and its first page number. Default is a comma followed by a blank.

#### 6.2.2.23 delim_2 <string>

Default: ", "

The delimiter to be inserted between a level 2 key and its first page number. Default is a comma followed by a blank.

#### 6.2.2.24 delim_n <string>

Default: ", "

The delimiter to be inserted between two page numbers for the same key in any level. Default is a comma followed by a blank.

#### 6.2.2.25 delim_r <string>

Default: "--"

The delimiter to be inserted between the starting and ending page numbers of a range.

#### 6.2.2.26 delim_t <string>

Default: ""

The delimiter to be inserted at the end of a page list. This delimiter has no effect on entries which have no associated page list.

#### 6.2.2.27 encap_prefix <string>

Default: "\\"

The prefix for the command which encapsulates the page number.

#### 6.2.2.28 encap_infix <string>

Default: "{"

The prefix for the command which encapsulates the page number.

#### 6.2.2.29 encap_suffix <string>

Default: "}"

The suffix for the command which encapsulates the page number.

#### 6.2.2.30 line_max <number>

Default: 72

The maximum length of a line in the output beyond which a line wraps around.

#### 6.2.2.31 indent_space <string>

Default: "\t\t"

The space to be inserted in front of a wrapped line. Default is two tabs.

#### 6.2.2.32 indent_length <number>

Default: 16

The length of indent_space. In the default case this is 16 (for 2 tabs).

#### 6.2.2.33 suffix_2p <string>

Default: ""

Delimiter to replace the range delimiter and the second page number of a two page list. When present, it overrides delim_r.

#### 6.2.2.34 suffix_3p <string>

Default: ""

Delimiter to replace the range delimiter and the second page number of a three page list. When present, it overrides delim_r and suffix_mp.

#### 6.2.2.35 suffix_mp <string>

Default: ""

Delimiter to replace the range delimiter and the second page number of a multiple page list (three or more pages). When present, it overrides delim_r`.