Update: Sadly, our indexing community has lost the author of the IXMLembedder utility, David K. Ream. The future of his utilities is uncertain.
For Word embedded indexing, I’ve started using the utility IXMLembedder by David Ream of Leverage Technologies:
IXMLembedder at Leverage Technologies
Besides Word documents, this tool will also embed index entries into InDesign documents and a variety of tagged document formats. For this flexibility, the tool comes in two pieces: the main IXMLembedder program, which is a Windows standalone executable, and the document-specific helper file. You need Windows 7 or later for the standalone .exe. Indexing software that writes to IXML format is supported, which at this writing is Cindex and Sky.
For Word embedding, the helper file is a .dot macro that is loaded into Word. You need Word 2013 or later for the correct VisualBasic version.
I’m working on a Macintosh MacBook Pro with Windows 10 running in Parallels Desktop. I use Mac Cindex. It all works fine.
When you get the software installed, note the two buttons on the IXMLembedder.exe main panel: Manual and Quick Ref. If they’d been snakes, they would have bit me, but as it is, I missed them and had to ask how to find a user’s guide. Clicking the Manual button brings up the PDF user guide.
The first step is to create a project folder that keeps the various pieces together: You will be working in a DOCX in Word, which will be converted to an XML file for embedding with the index program IXML file entries. The DOCX and IXML files need to be on the same level in the same folder.
The actual index file that you’re building in your indexing software can be saved anywhere; it’s the exported IXML file that needs to be in the project folder on the same level as the Word docx and its converted xml.
I work in Cindex indexing software (you need v3.0 or later); Sky is also supported (version 7.0 or later). I have my Cindex window open side-by-side with the open Word document window. In the Word document, I put my cursor where I want to insert an index mark then hit the keyboard shortcut Shift-Ctrl-period. This inserts into the Word document a comment containing a unique ID number and puts that ID number into the clipboard, so that I can simply paste it into the locator field of my Cindex entry.
Note: Cross-references need to be entered in their final format. Whether main or subentry, the cross-reference will follow a period and so the See or See also needs to be entered capitalized and italicized so that it’s properly formatted in the final index generated by Word.
If you need to go back to a previous entry, there’s a Find Locator button on the LevTech ribbon in Word. Enter the unique ID and you’ll be taken to that comment location.
I’m working on a Macintosh in Mac Cindex with Windows 10 running on Parallels Desktop. I have a fairly new MacBook Pro, but still I can’t work too quickly because there is sometimes a bit of a delay in getting the unique ID number into the clipboard. (I learned that there’s a separate little .exe running to put the ID number into the clipboard, hence the delay.)
To generate the index, use the Save As button on the Word LevTech ribbon to save the DOCX to XML. The utility saves it to the same location as the DOCX. The Cindex index needs to be Saved To XML Records, which is IXML format, in the same location as the just-converted XML file.
Then in the IXMLembedder.exe standalone program, click on the Index(es) tab and locate the saved IXML index file. Click Embed.
You’ll get warnings if any of your Cindex records have no locators; I imported a list of author terms and concepts, and so my initial test embed generated a number of such warnings. You can continue without any trouble.
You’ll get errors if any unique IDs in the Cindex locator field don’t match any of the comment unique ID numbers, such as when you mistype an ID number instead of pasting it.
The original DOCX file is untouched by the embedding process. You must save it to XML format for the embedding. Then you’ll use the Save As button on the Word LevTech ribbon to generate a new DOCX that contains the index tags from the XML file that you’ve embedded into; this DOCX will be found in the folder named embedded in the project folder, along with the XML that contains the embedded indexing tags. With that new DOCX open, click on the LevTech ribbon Insert Index(es) button to generate the actual index at the end of the docx file.
Boom! She works!
Before delivering the DOCX file containing the index tags, you’ll probably want to remove the comments containing the unique ID numbers via the Word LevTech ribbon Remove Item(s) button. These are no longer needed once the index has been embedded. Do not remove the bookmarks; they’re needed to form page ranges.
I delivered a draft index then three weeks later received the author corrections to incorporate into my index. Apparently during that three week period, a software update changed environment variables in my Windows environment; IXMLembedder gave me a VisualBasic error “file not found.” David Ream of Leverage Technologies applied the necessary corrections and got me working again.
IXMLembedder solidly performs for Word embedded indexing, and I’m confident I can depend on it when I need to work in tagged files or InDesign files in the future.