Am 09.03.2011 um 15:51 schrieb William Adams: > On Mar 9, 2011, at 5:38 AM, Frank Mittelbach wrote: > >> Now you can say that if somebody starts of the document with >> >> \usepackage{expl3,xparse,template} >> >> say then everything will be fine whether or not the document will be produced >> by ordinary 2e format or 2x. >> >> But history will tell us that what is likely to happen is that people start >> writing documents that will not \RequirePackage/\usepackage > > Would it be possible to build the format in such a way that the packages in question are built into it, but not activated unless such line(s) were present in the document? I thought about this issue, but how should this be done on the technical level? Once you have defined a TeX macro, there is no way to "deactivate" it. I had the hope that it would be possible to require either \NeedsTeXFormat{LaTeX2x} or \usepackage{expl3...}, but I don't think there is a simple way to do this. > Would there need to be an ``\activatepackage'' command? Or is there some better command which should be used in LaTeX3? I've complained in the past of LaTeX2e document pre-ambles being meaningless line-after-line of \usepackage{foo} and would really like to see a nicer interface here --- would this be a good opportunity to introduce it? This is not possible given the package system of LaTeX 2e: packages are just source code files that are read byte by byte, similar to C header files. After a package has been loaded, all macros defined by the package are defined and stay so forever. A more sound approach is to build a monolithic system and to get rid of TeX programming as far as possible—that is what ConTeXt Mk IV does.