The glossaries bundle is supplied with the package mfirstuc which provides the command:
This makes the rst object of hstu i uppercase unless hstu i starts with a control sequence followed by a non-empty group, in which case the rst object in the group is converted to uppercase. Examples:
produces ABC ( rst object is {\em abc} so equivalent to \MakeUppercase{\em abc}), and
produces abc (\em doesn't have an argument therefore rst object is \em so equivalent to {\MakeUppercase{\em}abc}).
Note that non-Latin or accented characters appearing at the start of the text must be placed in a group (even if you are using the inputenc package) due to expansion issues.
Note also that
produces: ABC. This is because the rst object in the argument of \makefirstuc is \abc, so it does \MakeUppercase{\abc}. Whereas:
produces: Abc. There is a short cut command which will do this:
This is equivalent to \expandafter\makefirstuc\expandafter{hstu i}. So
produces: Abc.
If you want to use an alternative command to convert to uppercase, for example \MakeTextUppercase,1 you can rede ne \glsmakefirstuc. For example:
New to m rstuc v1.06:
This command apply \makefirstuc to each word in htexti where the space character is used as the word separator. Note that it has to be a plain space character, not another form of space, such as ~ or \space. Note that no expansion is performed on htexti.
This is a short cut for \expandafter\capitalisewords\expandafter{htexti}.
Examples:
produces: A Book Of Rhyme.
produces: A Book of Rhyme.
produces: A BOOK OF RHYME. (No expansion is performed on \mytitle, so htexti consists of just one word .) Compare with next example:
produces: A Book of Rhyme.
1de ned in the textcase package