## LATEX-L@LISTSERV.UNI-HEIDELBERG.DE

 Options: Use Forum View Use Proportional Font Show HTML Part by Default Show All Mail Headers Message: [<< First] [< Prev] [Next >] [Last >>] Topic: [<< First] [< Prev] [Next >] [Last >>] Author: [<< First] [< Prev] [Next >] [Last >>]

 Subject: Re: A Question about the future of LaTeX3 From: Joseph Wright <[log in to unmask]> Reply To: Mailing list for the LaTeX3 project <[log in to unmask]> Date: Sat, 3 Jan 2009 08:27:05 +0000 Content-Type: text/plain Parts/Attachments: text/plain (47 lines)
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