On 01/07/2014 10:48, Robin Fairbairns wrote: > the other concern that sticks in my mind, is frank suggesting > case-diddling isn't really stuff for the latex kernel. I hope we are safe here: case changing is provided by many programming languages (so is likely 'right' for expl3), and we do need such functionality for e.g. running headers (all caps is common in such places). > does anyone know what context do? is there scope for joint work on a > common module? Reading e.g. http://wiki.contextgarden.net/Titles, the ConTeXt approach (as I'd guess) has more than one part. The primitives tend to be more 'encouraged' in ConTeXt than is likely to be the case for any stand-alone LaTeX2, and indeed than is often the case for LaTeX2e. Thus they have some examples using \uppercase, which is (in the version of ConTeXt I have installed) the primitive unaltered (I did not check for any callback here). There is also e.g. \WORD, which in MkIV uses LuaTeX's \attribute system to effect the change at the font level. The latter is therefore able to e.g. convert "ß" to "SS". (In my tests I did not find another example of a 1 -> many situation which is covered by the standard fonts.) Thus they have somewhat different requirements/aims. (Testing here suggests that e.g. \Word will pick up "." but does not handle for example quotations.) (Note: That page says \WORD will mess up \em, which may be correct for MkII but is wrong for MkIV. I've not checked what MkII does here.) (See also http://wiki.contextgarden.net/Command/setcharactercasing for the more general case, which works on a per-paragraph basis, again using attributes to achieve this.) -- Joseph Wright