XML Hacking – Add a Table of Contents to the TOC Gallery

In Word for Windows, you can select a Table of Contents and then add it to the TOC Gallery using References>Table of Contents>Save Selection to Table of Contents Gallery (highlighted in red below):

Add a Table of Contents to the TOC Gallery

Unfortunately, Mac versions of Word do not share this feature. But it’s a super-simple hack. If you are new to XML editing, please read XML Hacking: An Introduction. MacOS users should also read XML Hacking: Editing in macOS to avoid a couple of Mac-specific XML issues. The latter article now mentions the free XML editing plugin for the Chrome browser in the July 2018 update.


Add a Table of Contents to the TOC Gallery – The Steps

Make sure you’re working on a template rather than a document. We’ll be using AutoText, and AutoText is saved to the template. If you’re working on a document, the AutoText would get saved to the template attached to the document, not the document itself.

  • Start by making the invisible characters visible, using Word>Preferences…>View and checking All in the Show Non-Printing Characters section.
  • Now select the custom Table of Contents, making sure to include the paragraph mark just below it.
  • Choose Insert>AutoText>AutoText….
  • Set the Look in: dropdown to the name of the template you’re working on.
  • In the Enter AutoText entries here: field, give the AutoText entry a sensible name like Clientname Custom TOC.
  • Click on the Add button and save the template. Close Word.
  • Open the template file in your text editor or Chrom browser with the OOXML plugin.
  • Navigate to word/glossary and open document.xml, the home of all AutoText.
  • Search for the name you gave the TOC AutoText entry. The first few lines should look something like this:
  <w:docParts>
    <w:docPart>
      <w:docPartPr>
        <w:name w:val="Brandwares Custom TOC"/>
        <w:style w:val="TOC 2"/>
        <w:category>
          <w:name w:val="General"/>
          <w:gallery w:val="docParts"/>
        </w:category>
        <w:behaviors>
          <w:behavior w:val="content"/>
        </w:behaviors>
        <w:guid w:val="{DBD01F60-383F-C040-9417-745701ADCDFD}"/>
      </w:docPartPr>
  • Make 2 changes in the <w:category> section:
    1. Change the w:name value from General to a more meaningful name like Custom TOC. This will display as the heading under which your custom TOC appears.
    2. Change the w:gallery value from docParts to tblOfContents. This is the crucial step that makes the TOC appear in the TOC Gallery.
  <w:docParts>
    <w:docPart>
      <w:docPartPr>
        <w:name w:val="Brandwares Custom TOC"/>
        <w:style w:val="TOC 2"/>
        <w:category>
          <w:name w:val="Custom TOC"/>
          <w:gallery w:val="tblOfContents"/>
        </w:category>
        <w:behaviors>
          <w:behavior w:val="content"/>
        </w:behaviors>
        <w:guid w:val="{DBD01F60-383F-C040-9417-745701ADCDFD}"/>
      </w:docPartPr>
  • Resave the template file, close the editor and open it in Word.
  • Choose References>Table of Contents, scroll down to the Custom TOC section and choose your custom TOC.

Final Custom TOC in TOC Gallery


Add a Cover to the Cover Gallery

You can use exactly the same steps to add a custom cover to the Cover Gallery. Just change the w:category w:name value to Custom Covers and the w:gallery value to coverPg.

3:00 pm

2 thoughts on “XML Hacking – Add a Table of Contents to the TOC Gallery

  1. To ensure that custom entries in any of the Building Block / Quick Part galleries appear before the built-in entries start the Category name with a space. Best practice is to name the category “ Client Name”.

Leave a Reply

*Required fields. Your email address will not be published.

Posting XML? To enter XML code, please replace all less than signs "<" with "&lt;" and greater than signs ">" with "&gt;". Otherwise, Wordpress will strip them out and you will see only a blank area where your code would have appeared.

This site uses Akismet to reduce spam. Learn how your comment data is processed.