LATEX-L Archives

Mailing list for the LaTeX3 project


Options: Use Forum View

Use Monospaced Font
Show Text Part by Default
Show All Mail Headers

Message: [<< First] [< Prev] [Next >] [Last >>]
Topic: [<< First] [< Prev] [Next >] [Last >>]
Author: [<< First] [< Prev] [Next >] [Last >>]

Print Reply
Will Robertson <[log in to unmask]>
Reply To:
Mailing list for the LaTeX3 project <[log in to unmask]>
Mon, 24 Aug 2009 16:52:01 +0930
text/plain (78 lines)

I've been meaning to thank you, Frank, for the clear and insightful  
basis for discussion with the language layers. It's very helpful to be  
able to refer to these ideas in more concrete terms.

I also see that you've now answered Joel's questions as well, but I  
figured another viewpoint could hurt (much). Interesting to see if  
what I write makes sense to you :)

On 24/08/2009, at 10:47 AM, Joel C. Salomon wrote:

> Frank Mittelbach wrote:
>> As a short summary:
>> layer -1 = user interface definition for layer 0
>> layer 0  = DTD document type definition (no layout aspects)
>> layer 1  = layout/design definition for given DTD from layer 0
>> layer 2  = predefined, customizable templates for use in layer 1  
>> (applicable
>>            to more than one DTD)
>> layer 3  = programming constructs to build objects of layer 2
> De-lurking to clarify a point:
> In other words, an author will only (yeah, right) use layer -1, while
> the designer who customizes the layout for the book series will use  
> layer 0.
> Who uses layer 1?  I’d guess it’ll be the guy who decides how to
> logically divide the book—into Parts, Chapters, &c.  Is that right?
> Then who uses layers 2 & 3?

I'd like to draw a nice info-graphic to illustrate these layers, but  
for now I'll just try and answer your questions as I see the  
situation. (Please chime in with alternative interpretations.)

- Yes, the document author writes in Layer -1.

- Layer 0 defines the structure of the document sufficiently to be  
able to write the document in terms of abstract "content", separate  
from the "presentation". This layer doesn't define \part, \chapter,  
{figure}, and so on, it simply defines that those elements exist and  
can be used. (Perhaps also with an loose understanding of the way they  

- Layer 0 is also the layer than an automated system could output. In  
LaTeX2e, there is no difference between layer 0 and layer -1 (hence  
the odd numbering scheme, perhaps).

- Layer 1 is used by the author who wishes to adjust the design of the  
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.

- Layer 2 is a set of document styles that each fulfil certain generic  
design elements. There might be a set of templates that can be used to  
generate an "article-like" class that allows everything in LaTeX2e's  
article, but with a keyval interface (through template) for all of the  
design parameters.

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

I hope, like Frank, that this explains *my* thinking and that it  
correlates with his explanations as well. If not, then I've got some  
more pondering to do.