Received: from mail.proteosys.com ([213.139.130.197]) by nummer-3.proteosys with Microsoft SMTPSVC(6.0.3790.3959); Wed, 2 Sep 2009 03:27:36 +0200 Received: by mail.proteosys.com (8.14.3/8.14.3) with ESMTP id n821RZwc008613 for ; Wed, 2 Sep 2009 03:27:36 +0200 Received: from listserv.uni-heidelberg.de (listserv.uni-heidelberg.de [129.206.100.94]) by relay2.uni-heidelberg.de (8.13.8/8.13.8) with ESMTP id n821NOoU017991 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Wed, 2 Sep 2009 03:23:24 +0200 Received: from listserv.uni-heidelberg.de (localhost.localdomain [127.0.0.1]) by listserv.uni-heidelberg.de (8.13.1/8.13.1) with ESMTP id n81M1JhZ000417; Wed, 2 Sep 2009 03:23:16 +0200 Received: by LISTSERV.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 15.5) with spool id 293597 for LATEX-L@LISTSERV.UNI-HEIDELBERG.DE; Wed, 2 Sep 2009 03:23:16 +0200 Received: from relay.uni-heidelberg.de (relay.uni-heidelberg.de [129.206.100.212]) by listserv.uni-heidelberg.de (8.13.1/8.13.1) with ESMTP id n821NG6v014549 for ; Wed, 2 Sep 2009 03:23:16 +0200 Received: from mail-pz0-f185.google.com (mail-pz0-f185.google.com [209.85.222.185]) by relay.uni-heidelberg.de (8.14.1/8.14.1) with ESMTP id n821NBBk000710 for ; Wed, 2 Sep 2009 03:23:15 +0200 Received: by pzk15 with SMTP id 15so410564pzk.24 for ; Tue, 01 Sep 2009 18:23:11 -0700 (PDT) Received: by 10.114.163.13 with SMTP id l13mr5437497wae.139.1251854590719; Tue, 01 Sep 2009 18:23:10 -0700 (PDT) Received: from ?10.0.1.103? (219-90-222-60.ip.adam.com.au [219.90.222.60]) by mx.google.com with ESMTPS id j26sm536594waf.5.2009.09.01.18.23.08 (version=TLSv1/SSLv3 cipher=RC4-MD5); Tue, 01 Sep 2009 18:23:09 -0700 (PDT) Content-Type: text/plain; charset=US-ASCII; format=flowed; delsp=yes Content-Transfer-Encoding: 7bit Mime-Version: 1.0 (Apple Message framework v935.3) References: <122D1D66-1300-424C-9FBC-11C0B0CCB6C9@gmail.com> <19101.38098.951382.933456@morse.mittelbach-online.de> X-Mailer: Apple Mail (2.935.3) X-Spam-Whitelist: Message-ID: <09A81AE9-B501-4D95-BC18-9063037622B9@gmail.com> Date: Wed, 2 Sep 2009 10:53:06 +0930 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Will Robertson Subject: Re: template key default values To: LATEX-L@LISTSERV.UNI-HEIDELBERG.DE In-Reply-To: <19101.38098.951382.933456@morse.mittelbach-online.de> Precedence: list List-Help: , List-Unsubscribe: List-Subscribe: List-Owner: List-Archive: X-ProteoSys-SPAM-Score: -6.599 () BAYES_00,RCVD_IN_DNSWL_MED X-Scanned-By: MIMEDefang 2.65 on 213.139.130.197 Return-Path: owner-latex-l@LISTSERV.UNI-HEIDELBERG.DE X-OriginalArrivalTime: 02 Sep 2009 01:27:37.0017 (UTC) FILETIME=[8DDF6290:01CA2B6C] Status: R X-Status: X-Keywords: X-UID: 6063 On 02/09/2009, at 7:10 AM, Frank Mittelbach wrote: > for that reason I think the current scheme for defaults is about > right. if so, > then being able to alter the default of a template would still have > its place > and I think it would be a valid addition to a future implementation, > but it > would only be used on layer 1 when setting up document classes, ie > prior to > definining instances and there it would help to better structure the > design. For example, by setting the defaults for fonts just once all > near to > each other, rather than repeating them over and over again when > specifying the > instances. > > But it would not be usable or intended to make changes to a design > in a > document preamble. Hi Frank, Based on how I visualise instances "freezing" the moment they are instantiated, the behaviour you describe above is exactly how I imagined template defaults behaving. I think I need to clarify in my head how templates are treated and instantiated in the actual typesetting of a document. Does this order of execution look about right to you? A. expl3 and any other programming things are loaded (layer 3) B. Templates are defined somewhere (layer 2) C1. Class file: define document structure -- what template types and instances are to be used (define layer 0) C2. Class file: load template definitions C3. Class file: map document commands to instances (define layer -1) C4. Class file: set template defaults and instantiate templates (layer 1) C5. (Check that the instances required by the document structure exist and that no additional instances have been created.) D. Document configuration: final chance for instances to be redefined/edited E. Document typesetting: only local modifications possible are made available through layer -1 The order of steps C1-C5 doesn't really matter. I can see a little bit of redundancy in them but that follows from the discussion on trying to tease them apart as much as possible. I'm not sure if this clears things up for anyone, including me :) Will