Mime-Version: |
1.0 (Apple Message framework v1082) |
Content-Type: |
text/plain; charset=windows-1252 |
Date: |
Wed, 9 Mar 2011 17:48:22 +0100 |
Reply-To: |
|
Subject: |
|
From: |
|
Message-ID: |
|
In-Reply-To: |
|
Content-Transfer-Encoding: |
8bit |
Sender: |
|
Parts/Attachments: |
|
|
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.
|
|
|