Hi Bob, Thanks for the explanation. Nice trick to get sortas to work. I wondered how that would be done, given that you're using the XSL sorting mechanism underneath.
Seems to me that Jirka's solution is better than my other thought anyway. I always get a bit worried when you have to dig deep into the stylesheets to do something that is a one-off. Thanks, Dick ------- XML Press XML for Technical Communicators http://xmlpress.net [email protected] On Dec 10, 2012, at 9:19 AM, Bob Stayton wrote: > Hi Dick, > Regarding the code where sortas is handled, it is handled entirely in an > index key, which limits the kind of customization you can do. The key for > primary looks like this after the entity reference is resolved: > > <xsl:key name="primary" > match="indexterm" > use="normalize-space(concat(primary/@sortas, " ", primary))" > > The @use attribute can only use an expression, not a call to a template that > could do multistep processing of the indexterm. This key uses a bit of a > trick. The @use attribute concatenates @sortas if it exists, a space, and > the primary text. If @sortas is empty, then it concats space and primary, > but the normalize-space function removes the leading space, leaving just the > primary. > > This key is used for selecting matching indexterms, and the same expression > is used for sorting them. If @sortas is present then it will sort on that, > otherwise it sorts on primary. The actual presentation comes from the > indexterm elements themselves, not the key. > > Jirka's suggestion for a profiling pass to populate @sortas automates your > first suggestion. > > Bob Stayton > Sagehill Enterprises > [email protected] > > -------------------------------------------------- > From: "Richard Hamilton" <[email protected]> > Sent: Sunday, December 09, 2012 2:29 PM > To: "Stefan Seefeld" <[email protected]> > Cc: "DocBook Apps Mailing List" <[email protected]> > Subject: Re: [docbook-apps] customizing index generation > >> Stefan, >> >> The brute force way (though it wouldn't take much of an xsl script to do it) >> would be to add a sortas attribute to each term. It might also be worth >> checking out the code where sortas is handled and see if that's a convenient >> place to sneak in a customization. I've never looked at that code, so that >> may be a totally impractical suggestion:-). >> >> Dick >> ------- >> XML Press >> XML for Technical Communicators >> http://xmlpress.net >> [email protected] >> >> >> >> On Dec 9, 2012, at 1:59 PM, Stefan Seefeld wrote: >> >>> Hello, >>> >>> I'm writing an API reference manual for a library, whose symbols all >>> start with a common prefix. Having added one indexterm per symbol, the >>> generated index now contains a list with a single letter - the first >>> letter of the shared prefix. >>> >>> So, having "foo_something" and "foo_other" would now generate a single >>> letter "F" under which both symbols are listed. >>> >>> Is there a way to strip off the common prefix for purposes of index >>> generation only, that is without actually removing the prefix from the >>> indexed symbols themselves ? >>> >>> So, The two symbols "foo_something" and "foo_other" above would end up >>> in two sections, the first under "S", the second under "O". >>> >>> Is that possible ? >>> >>> Thanks, >>> Stefan >>> >>> >>> -- >>> >>> ...ich hab' noch einen Koffer in Berlin... >>> >>> --------------------------------------------------------------------- >>> To unsubscribe, e-mail: [email protected] >>> For additional commands, e-mail: [email protected] >>> >> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: [email protected] >> For additional commands, e-mail: [email protected] >> >> --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
