Hi Frank and others,
A minute or two reply during a midnight snack.
On 25/08/2009, at 1:40 AM, Frank Mittelbach wrote:
> so in short: layer 0 sits kind of in the middle between the two
> which is why I called it my layer 0.
Aha, very nice. I now highly approve of this numbering scheme!
(You must understand at first blush coming across (3,2,1,0,-1) caused
an eyebrow raise.)
>> - Layer 1 is used by the author who wishes to adjust the design of
>> document (different spacing, different fonts, etc.) and for the
>> designer who sets up a local modification of a class (say, a
>> university thesis style for others to use). In LaTeX2e, this could be
>> thought of as loading a package such as geometry and then using its
>> methods to change the page size.
> here is where my interpreation of layers differ: if the author
> wishes to
> adjust design of the document he or she does so conceptually on
> layer 1. Now
> if (and we are going to do that) pass design customization functions
> to layer
> 0 which in turn offers those on layer -1 then yes he or she can do it
> there. But this is not automatic.
> It only looks like it if our functions on layer 1, say,
> \EditInstance, looks
> like a command of layer -1 (which it does if our layer -1 is a 2e-
> like syntax
> layer). But just assume that layer -1 is an XML interface then you
> have to
> translate the functions through the layers.
Okay, I see two approaches here.
- Some document elements will be modifiable from within the user
syntax of the document (layer -1).
- Each document could automatically load, say, a \jobname.cfg file
that contains local modifications at layer 1, written by the document
author in template--instance form.
I was thinking of the second option when I wrote that above; but it's
certainly true that some typographic tweaking will need to be done in
layer -1 itself -- automated typesetting, as you very very well know,
always needs some manual optimisations.
>> - Layer 2 is a set of document styles that each fulfil certain
>> design elements. There might be a set of templates that can be used
>> generate an "article-like" class that allows everything in LaTeX2e's
>> article, but with a keyval interface (through template) for all of
>> design parameters.
> again I see this slightly different. The article-like class lives on
> layer 0
> (as far the the logical element definitions are concerned) and an
> instance of
> the class, say, famous standard LaTeX2e article layout, lives on
> layer 1.
> Layer 2 instead provides the generic set of templates that once
> define the layout for document classes
I completely agree.
I suppose this is what I meant to write but my fingers didn't quite do
as instructed :)
>> - Layer 3 is the code that turns the source itself plus the design
>> parameters into a typeset document. In LaTeX2e terms, this is simply
>> what exists inside the standard classes, since they offer no (or few)
>> options for direct modification. Layer 3 is the mechanics that
>> performs the (a) typesetting algorithms of paragraphs and lists, (b)
>> automatic numbering, (c) page layout with footnotes and floats, (d)
>> resolving cross-references, and so on and so on.
> that is interesting: to may layer 3 was already basic expl3, but you
> are right
> it might be worth putting certain higher level concepts between
> layer 2
> (templates) and base processing functions
Well, if you like you could have
layer 4 - basic programming tools
(expl3 data structures and algorithms, and/or LuaTeX
layer 3 - generic document processing tools
(that built with layer 4 which is needed for templates)
But I'm happy with a lumped layer 3 that contains everything needed to
implement a template. It's a bit of a fuzzy area I suppose.
> I'm not saying my interpretation is right and your's is wrong, it is a
> different way to look at what is happening. Unfortunately, for the
> sake of
> being able to talk about something needs implementing on layer 1 etc
> we need
> to come to a single interpretation of the terms (unless you want to
> call it
> FMi-layer-1 :-)
I think with everything newly learnt it takes some time for the
terminology to sink in properly so that one is using it in the same
way as everyone else.
I'm not saying my interpretation is wrong but I agree with everything
you've said so far.