repo: jargon
action: blob
revision: 
path_from: docbook-xsl-1.62.4/params/make.index.markup.xml
revision_from: refs/heads/trunk:
path_to: 
revision_to: 
git.thebackupbox.net
jargon
git clone git://git.thebackupbox.net/jargon

blob of:

jargon
/ docbook-xsl-1.62.4
/ params

/ make.index.markup.xml

blob_plain of this file

refs/heads/trunk:/docbook-xsl-1.62.4/params/make.index.markup.xml

 
 
 make.index.markup
 boolean
 
 
 make.index.markup
 Generate XML index markup in the index?
 

 
 
 
 
 

 Description

 This parameter enables a very neat trick for getting properly
 merged, collated back-of-the-book indexes. G. Ken Holman suggested
 this trick at Extreme Markup Languages 2002 and I'm indebted to him
 for it.

 Jeni Tennison's excellent code in
 autoidx.xsl does a great job of merging and
 sorting indexterms in the document and building a
 back-of-the-book index. However, there's one thing that it cannot
 reasonably be expected to do: merge page numbers into ranges. (I would
 not have thought that it could collate and suppress duplicate page
 numbers, but in fact it appears to manage that task somehow.)

 Ken's trick is to produce a document in which the index at the
 back of the book is displayed in XML. Because the index
 is generated by the FO processor, all of the page numbers have been resolved.
 It's a bit hard to explain, but what it boils down to is that instead of having
 an index at the back of the book that looks like this:

 
A ap1, 1, 2, 3
you get one that looks like this:
A ap1, 1, 2, 3 ]]>
After building a PDF file with this sort of odd-looking index, you can extract the text from the PDF file and the result is a proper index expressed in XML. Now you have data that's amenable to processing and a simple Perl script (such as fo/pdf2index) can merge page ranges and generate a proper index. Finally, reformat your original document using this literal index instead of an automatically generated one and bingo!