Skip to content
Martin Henz edited this page May 5, 2021 · 20 revisions

The PDF edition currently features an index. The ebook and web editions don't have an index at the moment; users need to rely on search for those editions. The index is generated from INDEX elements in the text.

INDEX elements and subelements

  • <INDEX>: the usual rendering is applied to the content of the element
  • <SUBINDEX>: optional element for subindex within index: the usual rendering is applied to the content of the element
  • <ORDER>: optional element within <INDEX> and <SUBINDEX> to define the order in which the element appears in the (sub)index
  • <DECLARATION>...</DECLARATION>: within <INDEX> or <SUBINDEX> creates JavaScript-formatted text (names) and a page number in italics. The text is also used as order entry.
  • <USE>...</USE>: within <INDEX> or <SUBINDEX> creates JavaScript-formatted text (names) and a page number in roman. The text is also used as order entry.
  • <INDEX>... <OPEN/></INDEX> ... <INDEX>...<CLOSE/></INDEX>: indicating page ranges. Such elements need to appear in pairs, and the opening element needs to appear in the source documents before the closing element.
  • <INDEX><PRIMITIVE/><SUBINDEX>...</SUBINDEX></INDEX>: item is listed under "primitive functions"
  • <INDEX><PRIMITIVE/><SUBINDEX><DECLARATION>...</DECLARATION><ECMA>...</ECMA></SUBINDEX></INDEX>: the ECMA element has the equivalent function in ECMAScript.
  • <INDEX><PARSING/><SUBINDEX>...</SUBINDEX></INDEX>: item is listed under "parsing JavaScript"
  • <INDEX><FUNCTION/><SUBINDEX>...</SUBINDEX></INDEX>: item is listed under "function (JavaScript)"
  • <INDEX><OPERATOR/><SUBINDEX>...</SUBINDEX></INDEX>: item is listed under "operators"
  • <INDEX>...<SEE>...</SEE></INDEX>: creates a "see" entry
  • <INDEX>...<SEEALSO>...</SEEALSO></INDEX>: creates a "see also" entry
  • index entries within figure captions create a (fig...) after the page number
  • index entries within exercises create a (ex...) after the page number
  • <INDEX>...<FRAGILE/></INDEX>: avoids placing items into margin when indexAnnotations is turned on in parseXmlLatex.js. Instead, the items are placed inline in the text. Placement inside text is also used (even without explicit <FRAGILE/>) when the item appears in a footnote, figure, or chapter-opening quote.

Color-coding of margin annotations

Turn on color-code margin annotations by setting indexAnnotations to true in javascript/parseXmlLatex.js. The following colors are used:

  • blue: regular index entry
  • dark green: regular index subentry
  • brown: string for alphabetic ordering (not printed in index)
  • purple: JavaScript declaration as index entry (line number in italics)
  • green: JavaScript declaration as index subentry (line number in italics)
  • red: JavaScript name as index entry (line number in roman)
  • turquoise: JavaScript name as index subentry (line number in roman)
  • black: see
  • grey: see also
  • <: used for an opening page range
  • >: used for a closing page range

Placement of INDEX elements

  • INDEX elements must be placed in separate lines, in ordinary text (TEXT, EXERCISE, FOOTNOTE etc), or in SNIPPET elements.
  • INDEX elements in ordinary text must be surrounded by text. They cannot occur at the beginning or at the end of a text element body.
  • INDEX elements can occur directly within SNIPPET elements, but not inside any JAVASCRIPT elements in those elements.
  • Multiple INDEX elements can occur in sequence, each in a separate line.
Clone this wiki locally