Some of my posts on the blog are tagged with "wishlist", obviously because it explains some of my feature wishes for future versions of InDesign. One of the posts explains my wish for being able to mark up the same text with multiple character styles, and also explains some of the workarounds that could be used achieve it.
The need for tagging things with multiple character styles has for me not always just been to apply styling, but also for using the style as a "marker" for future reference. E.g. in a specific project I am currently planning, where we are preparing a huge launch of a new Bible translation with many different editions. Here we wan't to prepare the InDesign files for new different future editions as well, tagging all kinds of different text. E.g. "words of Jesus", "words of God", "names", "places" etc.
Digging into InDesign's different possibilities for marking up text - XML tags, character styles, color swatches, conditional text - only conditional text allow you to mark up the same text with more "tags" of the same kind.
For multiple index purposes, the best solution is "nesting" the indexes, by creating "level 1 topics" for each index, and adding the index references under them. Then by generating the index all the indexes will be generated, and you can just delete the ones you don't want in the edition.
Script for marking text with multiple character styles
To make an alternate solution for applying multiple character styles to the same text, other than nested styles, grep styles etc. as mentioned in the wishlist post, I have prepared a script to apply character style formatting to text with specific conditional text tags applied.
First of all, prepare your document with conditional text tags for the styles you want to apply, and for each tag create a character style with the same name.
Preparing the document for multiple character styles by creating conditional text tags and character style pairs.

Next you want to apply the conditional text tags to the text you want to format. In this case I have only prepared a "Red" style, and a "Small-caps" style. In addition to these I have made a "Italic" style, which is already applied to some text.
Notice especially the words "voluptatem" and "lacerfernam" that has the italic style already applied, and the word "accus" which is both marked up with the "Red" and "Small-caps" conditional text tag.
The only thing left is running the script, which will result in this:
Result after running the multiple character styles script.

To explain what just happened - the script finds all text with the conditional text tags applied, in the order of the tags in the conditional text panel. Then the styling of the character style is applied, but the style itself is not applied - so basically the styling is added "locally" and will be removed if the style is later overridden.
Knowing the process can explain issues you might experience - if you make a style/tag pair called "Red" and one called "Yellow", in that order, the "Red" style formatting will applied first, and then the "Yellow", making the text yellow, and not red.
Running the script will not remove the tagging of the text, so if you "run it to soon" and override some styles, you can always run the script again to re-apply the local formatting.
I hope you find use of the script, at least until Adobe hopefully adds real support for multiple character styles!
The script
The JavaScript can be downloaded here: multiple_character_styles.jsx.
You can add it to your Scripts palette and run it from there. To do that, place the file inside the "~/Library/Preferences/Adobe InDesign/Version 6.0/Scripts/Scripts Panel" folder.








