Print

Print


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