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