On 20/10/2013 12:25 a.m., Clemens Niederberger wrote: > > > Am 19.10.2013 10:05, schrieb Andrew Parsloe: >> I thought (naively) that writing >> >> \tl_set:Nx \l_tmpa_tl { \tl_to_uppercase:n {text} } >> >> would put TEXT in the variable \l_tmpa_tl (as revealed by \tl_show:N >> \l_tmpa_tl). It doesn't, and nothing else that I've tried does either. >> What is the recipe for getting \l_tmpa_tl to contain TEXT, starting from >> text? >> >> Andrew > > \tl_to_uppercase:n is a wrapper around the primitive \uppercase which is > not expandable. That's probably the reason why \tl_to_uppercase:n isn't > expandable either. > > There is however \tl_expandable_uppercase:n which I believe works by > expandably replacing letters with their uppercase versions: > > \documentclass{article} > \usepackage{expl3} > \begin{document} > \ExplSyntaxOn > \tl_set:Nx \l_tmpa_tl { \tl_expandable_uppercase:n { text } } > \tl_show:N \l_tmpa_tl > \ExplSyntaxOff > \end{document} > > Best, > Clemens > Thank you. If I had looked harder I would have seen reference to this function in the "Additions to l3tl" at the end of the LaTeX3 Interfaces document. Andrew