Will Robertson wrote:
>> I've quickly thrown together a module which does basically this. I've
>> called t "l3module" for want of a better name. Source/PDF/ZIP including
>> demo available from
>> http://www.texdev.net/2009/01/02/tex-and-namespaces-continued/
>
> That's neat!
>
> I assume you're intended for it to be primarily used for user-space macros?
Yes, the prefix clash problem is, I think, much more unlikely (and
easier to handle using a manually-maintained database of taken values).
> What do you think of the idea to add something like this functionality
> to xparse, so that any instance of \DeclareDocumentCommand will
> automatically populate the list? On the other hand, it's nice to have an
> explicit list.
I'd thought about this, but at this stage was aiming for a quick "proof
of principal" implementation. I wouldn't want to mess with xparse
without asking (and in any case, I can't!).
Using an explicit list is convenient for checking, but I'd agree that
perhaps a hook in \DeclareDocumentCommand would be a neater solution,
overall. Doing that, there is a need to think about anything defined
after the end of the module (say \AtBeginDocument). I think you'd still
want a way to explicitly reserve macro names under those circumstances.
I would imagine that if the team want to provide a "name reservation"
system, you'd probably integrate \module_details:nn with
\ProvidesExplPackage, so that you'd always have some details available.
As you'd probably guess, I'd prefer an "internal" function name for
this, so perhaps:
\module_details:nn {module} {
name = xxx,
version = xxx,
date = xxx,
e-mail = xxx,
description = xxx
}
with all of those values compulsory, and then the other details I've
suggested as optional.
--
Joseph Wright
|