Received: from mail.proteosys.com ([213.139.130.197]) by nummer-3.proteosys with Microsoft SMTPSVC(6.0.3790.3959); Sat, 22 Aug 2009 13:29:37 +0200 Received: by mail.proteosys.com (8.14.3/8.14.3) with ESMTP id n7MBTaEF025934 for ; Sat, 22 Aug 2009 13:29:37 +0200 Received: from listserv.uni-heidelberg.de (listserv.uni-heidelberg.de [129.206.100.94]) by relay.uni-heidelberg.de (8.14.1/8.14.1) with ESMTP id n7MBPWI8013344 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Sat, 22 Aug 2009 13:25:32 +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 n7LM35UC029540; Sat, 22 Aug 2009 13:25:19 +0200 Received: by LISTSERV.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 15.5) with spool id 286420 for LATEX-L@LISTSERV.UNI-HEIDELBERG.DE; Sat, 22 Aug 2009 13:25:18 +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 n7MBPI7s022667 for ; Sat, 22 Aug 2009 13:25:18 +0200 Received: from moutng.kundenserver.de (moutng.kundenserver.de [212.227.17.10]) by relay.uni-heidelberg.de (8.14.1/8.14.1) with ESMTP id n7MBPDol012102 for ; Sat, 22 Aug 2009 13:25:17 +0200 Received: from morse.mittelbach-online.de (p54A83E1C.dip.t-dialin.net [84.168.62.28]) by mrelayeu.kundenserver.de (node=mrbap2) with ESMTP (Nemesis) id 0MKt72-1Meoif0yPR-000Cta; Sat, 22 Aug 2009 13:25:13 +0200 Received: by morse.mittelbach-online.de (Postfix, from userid 501) id 5130E6F8D0; Sat, 22 Aug 2009 13:25:10 +0200 (CEST) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit References: <874332F9-007B-4945-87D5-48B28BBC11CC@gmail.com> X-Mailer: VM 7.19 under Emacs 21.3.1 X-Provags-ID: V01U2FsdGVkX19S/qQih1LhMy/qyTRslp1hqRI4kEglNyuwW06 IZdoa8zQ3eWeBjAABlMNvxSRmY4ayTGhzQq8y8sk2ayBzQUZZo 8fh5BLMhblQhPbilXrJyw== X-Spam-Whitelist-Provider: Message-ID: <19087.54678.292071.47911@morse.mittelbach-online.de> Date: Sat, 22 Aug 2009 13:25:10 +0200 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Frank Mittelbach Subject: Re: template customising To: LATEX-L@LISTSERV.UNI-HEIDELBERG.DE In-Reply-To: <874332F9-007B-4945-87D5-48B28BBC11CC@gmail.com> Precedence: list List-Help: , List-Unsubscribe: List-Subscribe: List-Owner: List-Archive: X-ProteoSys-SPAM-Score: -106.599 () BAYES_00,RCVD_IN_DNSWL_MED,USER_IN_WHITELIST X-Scanned-By: MIMEDefang 2.65 on 213.139.130.197 Return-Path: owner-latex-l@LISTSERV.UNI-HEIDELBERG.DE X-OriginalArrivalTime: 22 Aug 2009 11:29:37.0074 (UTC) FILETIME=[D48F7120:01CA231B] Status: R X-Status: X-Keywords: X-UID: 5975 Will Robertson writes: > I've now got a new question. Following Joseph's examples, we might > have something like \chapter which uses an instance 'chapter' of type > 'sectioning'. > > What should be done at the document design level to customise the look > of the chapter headings? I don't think we want to have to redefine > \chapter, so there are two options: > > 1. create a fresh instance called 'chapter' with the desired parameters, > 2. "edit" the current 'chapter' instance. I guess we first have to get clear about which use case we are tackling here. If we want to change the interface of "chapter" in the document, ie change the document user level (which would be layer -1 in my model outlined in the mail yesterday) then one would change the \chapter command definition and possibly the semantics on layer 0 if the change to the document model is extensive. But I guess you meant changing the typographical representation of "chapter" and in that case the change should happen on layer 1, i.e., modifying the instance that implements "chapter" in this layout. > The first option is what is necessary in, say, titlesec. I've got to > admit it's not my favourite, because it requires you to possibly set > or re-set a bunch of parameters that you were already happy with. (And > you also have to know the name of the template it was produced with.) At the moement this is the only way to change a layout, i.e. one has to replace one instance declaration with another, even if you only want to replace a single key/val setting. > Let's say then that I'd like to be able to edit the instance > 'chapter'; is there any way to be able to do this? > > I imagine markup like > > \EditInstance{sectioning}{chapter}% template is implicit! > { ...keyvals... } > > but I don't know if my desire for this construct illustrates a > misunderstanding of mine of the system. Technically that would be possible I think, but I don't see how it would fit a workable use-case for the designer level. There is no way (in my opinion) for a person that wants to change the layout to do so without knowing which template has been used in producing the particular instance. If he or she doesn't know then there is no way to know which keyvals to use either. After all one important point about templates is that while they attempt to implement the same semantics (ie an object of a certain template type) they might do so in totally different ways. For example, with sectioning, one template might measure vertical distances baseline to baseline while some other might specify before/after skips etc. Therefore a declaration that updates an existing instance should carry the name of the used template as in \EditInstance{