LATEX-L Archives

Mailing list for the LaTeX3 project

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 >>]

Print Reply
Sender:
Mailing list for the LaTeX3 project <[log in to unmask]>
Date:
Wed, 9 Mar 2011 19:22:54 +0100
Reply-To:
Mailing list for the LaTeX3 project <[log in to unmask]>
Message-ID:
Subject:
MIME-Version:
1.0
Content-Transfer-Encoding:
7bit
In-Reply-To:
Content-Type:
text/plain; charset=us-ascii
From:
Frank Mittelbach <[log in to unmask]>
Parts/Attachments:
text/plain (46 lines)
Philipp 

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

there are possibilities of various sophistication. A simple approach for just
expl3 would be something like \ActivateExplCode \DeactivateExplCode where the
latter would simply hook into some core functions like the arg expansion
mechanism, e.g., replacing \exp_args:No and a few others with a suitable error
message when called. And \ActivateExplCode would \cs_set_eq:NN the orig
definitions back. All you would need to do would be to select the right kind
of code pieces to make this work.

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

for abitrary packages that would be a little trickier but not impossibe
either. Even if code stays forever, per package there are usually only one or
two definitions that you would need to highjack and rename to make such a
scheme fly. 

I don't agree with the statement that this needs a monolithic system. Yes such
a system makes a lot of things easier, but then there are also advantages in
the openess of the LaTeX world as far as third-party packages are concerned.

cheers
frank

ATOM RSS1 RSS2