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

 Options: Use Forum View Use Monospaced Font Show Text Part by Default Condense Mail Headers Message: [<< First] [< Prev] [Next >] [Last >>] Topic: [<< First] [< Prev] [Next >] [Last >>] Author: [<< First] [< Prev] [Next >] [Last >>]

```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.
```