Edit online

Creating an Index in DITA

In DITA, indexes are created from <indexterm> elements. You can insert index term elements in the following:
  • The header of a topic: In paginated media, such as a printed book or a PDF, this results in an index entry that points to the page where the topic starts, even if it is not the page in which the indexed term occurs.
  • In the <topicref> element in a map that references the topic: This applies those index terms to that topic only when used in that map, allowing you to index topics differently in various publications. In paginated media, index entries point to the page where the topic starts.
  • In the body of a topic: In paginated media, this results in an index entry that points to the page where the <indexterm> element occurs, even if that is not the page where the topic starts.

To add index terms to the text of a topic of the topic header, create the elements as you normally would in Oxygen XML Editor. To add index terms to a map, open the map in the editor and add the elements, as you normally would, in a topic.

In some media, indexes will be generated automatically when index entries are found in the source. For other media, such as books, you may need to tell DITA where to place the index. For instance, to add an index to a bookmap, you need to add an <indexlist> element to the <backmatter> of the book.

  1. Open your bookmap in the DITA Maps Manager.
  2. Right-click the bookmap and select Append Child > Backmatter.
  3. Click Insert and Close to insert the <backmatter> element.
  4. Right-click the <backmatter> element and create a <booklists> element using Append Child > Book Lists.
  5. Use the same steps to create an <indexlist> element.
CAUTION: Adding index entries and an <indexlist> to your project creates an instruction to the DITA publishing routines to create an index. There is no guarantee that all DITA output types or third-party customizations obey that instruction or create the index the way you want it. Modifying the output may be necessary to get the result you want.