I'm writing a document describing the semantics of opinion phrases in English, and in order to do so, I'm annotating particular spans of text as having particular semantic functions within the opinion. So far, my results look something like this (with the TeX code that typesets each one underneath).

\enumsentence{
\target{The Lost World}
was a
\comparator{\attitude{better}}
\superordinate[1]{book}
\comparatorthan{than}
\superordinate[2]{movie}.
}

\enumsentence{
\evaluator{I} thought
\target[1]{they} were
\comparator{less} \attitude{controversial} \comparatorthan{than}
\target[2]{the ones I mentioned above}.
}

\enumsentence{
\target{A real rav muvhak ends up knowing you very well,
very intimately one might say}
- in a way that I am not sure is actually
\attitude{very appropriate}
or easy to negotiate
\aspect{when the sexes differ}.
}
The different annotation commands \target, \attitude, \aspect, \superordinate, and \comparatorthan are all defined to set the formatting to italic or bold-italic text, surround the text that's annotated in brackets and place the annotation name in subscript outside the brackets.
The problem is that I don't really like this notation. The subscript annotation names make it hard to easily identify the words in the sentence, and long annoation names have the tendency to cause overfull hboxes. Overlapping annotations are also not as nice as they could be.
So here's my request. Can you all think of more creative, nicer ways to present the same information?
Note: preferably I'd like to do this by only redefining the annotation commands (and not changing the commands found in the 100 or so examples that are in this document already). Also, annotations are supposed to overlap in some cases, like in example 31, so any solution needs to account for that. Also note that in example 42, one of the annotations has to wrap.





ulemsuggestion, but once I started looking at theulempackage, I decided to take this in a totally different direction. – Ken Bloom May 11 '11 at 15:09ulem, helped me to make underlines that wrap, and I also got to see that\underlinestacks. I'm posting my solution as an answer now. – Ken Bloom May 11 '11 at 15:35