LATEX-L Archives

Mailing list for the LaTeX3 project


Options: Use Classic View

Use Monospaced Font
Show Text Part by Default
Show All Mail Headers

Topic: [<< First] [< Prev] [Next >] [Last >>]

Print Reply
Rémy Oudompheng <[log in to unmask]>
Wed, 10 Nov 2010 18:16:12 +0100
text/plain (50 lines)
Hello everybody,

I am interested in Unicode-capable TeX engines, and as such felt
that after fontspec and unicode-math, polyglossia would deserve
a rewrite for expl3. polyglossia currently uses etoolbox to
provide features much similar to what is offered by the LaTeX3
packages, notably a lot of keyval-like features. I found benefits
in the nice syntax offered by l3keys, and the \prg_case_str
function for example.

You may find a Git repository at

I am looking for help in testing this, hoping that you will like it,
and I have also a question: for some reason, in polyglossia
we need to (un)capitalize words for use in csnames.

I think I can produce somthing like this in LaTeX 3:

\def\func#1{\tl_to_uppercase:n{\tl_head:n{#1}}{\tl_tail:n #1}}

produces Abc as expected.

The TeX code is polyglossia is like this:

\def\xpg@uppercasefirst#1{\expandafter\xpg@@uppercasefirst #1}
       \if a#1A\else
       \if b#1B\else
       \if c#1C\else
       \if d#1D\else
         ... \fi\fi\fi\fi

I have been trying to replace it by something like

\cs_new:Npn \polyg_uppercase_first:x{\tl_to_uppercase:n{\tl_head:n{#1}{\tl_tail:n

or some combination using \exp_args but the result was never
equivalent, since in polyglossia the input may be a complicated
macro and the output will be surrounded by \csname..\endcsname

How should I do that ?

  Rémy Oudompheng.