- object
- A high-level document concept, such as
heading
,list
, orfloat
. - template
- A mid-level document concept that are specific use cases of objects, such as
section
,subsection
,enumerate
,itemize
,table
, andfigure
. - instance
- A user-level document concept that implements a given template by specifying its parameters.
- template library
- A collection of templates defined jointly by the programmer and document designer.
- document class realization
- A collection of instances.
- document type specification
- … ?
- UI representation
- Any single mark-up manifestation of the document type specification.
- document
- The end product.
- author
- Responsible for authoring the document. Uses the UI representation designed by the document type designer.
- document type designer
- Responsible for the high-level logical components of the document.
Defines object types with
\DeclareObjectType
(for the document designer) and creates the document type specification. - document designer
- Responsible for the details of the document’s visual manifestation and user interface.
Defines the document class realization using a list of declared data types (written by the document type designer),
declaring templates with
\DeclareTemplateInterface
and instances and\DeclareInstance
(to be used by the author). - programmer
- Responsible for the implementation of templates.
Writes template implementations for the document designer using
expl3
and\DeclareTemplateCode
.
- core language layer
expl3
- typesetting foundation layer
expl3
,xtemplate
- designer interface foundation layer
xtemplate
- class design layer
xtemplate
- user interface foundation layer
xparse
,xtemplate