LATEX-L Archives

Mailing list for the LaTeX3 project

LATEX-L@LISTSERV.UNI-HEIDELBERG.DE

Options: Use Forum View

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

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

Print Reply
Subject:
From:
Rémy Oudompheng <[log in to unmask]>
Reply To:
Mailing list for the LaTeX3 project <[log in to unmask]>
Date:
Wed, 10 Nov 2010 18:25:30 +0100
Content-Type:
text/plain
Parts/Attachments:
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
  http://github.com/remyoudompheng/polyglossia

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\art{abc}
\def\func#1{\tl_to_uppercase:n{\tl_head:n{#1}}{\tl_tail:n #1}}
\def\frou#1{\exp_args:Nf\func#1}
\frou\art

produces Abc as expected.

The TeX code is polyglossia is like this:

\def\xpg@uppercasefirst#1{\expandafter\xpg@@uppercasefirst #1}
\def\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
#1}}

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 ?

Regards,
  Rémy Oudompheng.

ATOM RSS1 RSS2