Received: via tmail-4.1(11) (invoked by user schoepf) for schoepf; Fri, 14 Jan 2000 16:44:12 +0100 (MET) Received: from mailgate2.zdv.Uni-Mainz.DE (mailgate2.zdv.Uni-Mainz.DE [134.93.8.57]) by mailserver1.zdv.Uni-Mainz.DE (8.9.3+Sun/8.9.1) with ESMTP id QAA18678 for ; Fri, 14 Jan 2000 16:44:12 +0100 (MET) MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----_=_NextPart_001_01BF5EA6.34052E00" Received: from mail.listserv.gmd.de (mail.listserv.gmd.de [192.88.97.5]) by mailgate2.zdv.Uni-Mainz.DE (8.9.3/8.9.3) with ESMTP id QAA07969 for ; Fri, 14 Jan 2000 16:44:09 +0100 (MET) Received: from mail.listserv.gmd.de (192.88.97.5) by mail.listserv.gmd.de (LSMTP for OpenVMS v1.1a) with SMTP id <13.01EFB753@mail.listserv.gmd.de>; Fri, 14 Jan 2000 16:43:54 +0100 X-MimeOLE: Produced By Microsoft Exchange V6.5 Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 447686 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Fri, 14 Jan 2000 16:42:51 +0100 Received: from relay.uni-heidelberg.de (relay.uni-heidelberg.de [129.206.100.212]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id QAA28725 for ; Fri, 14 Jan 2000 16:42:49 +0100 (MET) Received: from mailgate1.zdv.Uni-Mainz.DE (mailgate1.zdv.Uni-Mainz.DE [134.93.8.56]) by relay.uni-heidelberg.de (8.9.3+Sun/8.9.1) with ESMTP id QAA16452 for ; Fri, 14 Jan 2000 16:44:02 +0100 (MET) Received: from mailserver1.zdv.Uni-Mainz.DE (mailserver1.zdv.Uni-Mainz.DE [134.93.8.30]) by mailgate1.zdv.Uni-Mainz.DE (8.9.3/8.9.3) with ESMTP id QAA15977 for ; Fri, 14 Jan 2000 16:44:01 +0100 (MET) Received: from istrati.zdv.uni-mainz.de (dialin374.zdv.Uni-Mainz.DE [134.93.175.74]) by mailserver1.zdv.Uni-Mainz.DE (8.9.3+Sun/8.9.1) with ESMTP id QAA18647 for ; Fri, 14 Jan 2000 16:43:59 +0100 (MET) Received: (from design@localhost) by istrati.zdv.uni-mainz.de (8.9.3/8.9.3) id QAA00970; Fri, 14 Jan 2000 16:08:42 +0100 Return-Path: x-vm-v5-data: ([nil nil nil nil nil nil nil nil nil]["6629" "Fri" "14" "January" "2000" "16:08:42" "+0100" "Frank Mittelbach" "frank.mittelbach@LATEX-PROJECT.ORG" nil "148" "templates for galley (paragraph) formatting" "^Date:" nil nil "1" nil nil nil nil nil]nil) X-Authentication-Warning: istrati.zdv.uni-mainz.de: design set sender to design@istrati.zdv.uni-mainz.de using -f Content-class: urn:content-classes:message Subject: templates for galley (paragraph) formatting Date: Fri, 14 Jan 2000 16:08:42 +0100 Message-ID: <200001141508.QAA00970@istrati.zdv.uni-mainz.de> X-MS-Has-Attach: X-MS-TNEF-Correlator: From: "Frank Mittelbach" Sender: "Mailing list for the LaTeX3 project" To: "Multiple recipients of list LATEX-L" Reply-To: "Mailing list for the LaTeX3 project" Status: R X-Status: X-Keywords: X-UID: 3500 This is a multi-part message in MIME format. ------_=_NextPart_001_01BF5EA6.34052E00 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable As promised this is the first installment of templates and code for = galley formatting, the rest will hopefully follow in couple of days. The complete document can be found at http://www.latex-project.org/code/experimental/galley/xhj.dtx as an introduction I've added the first part to this mail below. I think that this document already serves as a good introduction to the high-level aspects of the new galley mechanism and though one can't make = use of the code without the low-level interfaces I hope that the = documentation will spawn a lively discussion. A lot of issues and requests for = comments are already added into the documentation. Enjoy (and please don't just denote agreement with polite silence :-) Frank % \begin{abstract} % This module contains basic templates for interfacing with the % galley mechanism as set up by the module % \texttt{galley2}. These templates are intended for class % designers and are mostly usable out of the box (i.e., this is one % of the modules where providing a suitable number of default % instances is probably sensible since they would cover 98\% of all % usage. In contrast the \texttt{galley2} module contains only % low-level interfaces for % direct manipulation of the galley mechanism which are geared % towards package writers having special needs which are not % fulfilled by the templates in this module. % \end{abstract} % % % % % \section{Introduction} % % In \LaTeXplus{} terminology a galley is a rectangular area which % receives text and other material filling it from % top.\footnote{The predominant direction depends on the writing % system and with extensions to \TeX{} such as Omega there are % possibilities to define galleys with a different filling direction.} % The vertically extend of a galley is normally not restricted % (there are exceptions); instead certain chunks are taken off the top % of an % already partially filled galley to form columns or similar areas % on a page. This process is typically asynchronous but there are ways % to control or change its behavior. % % Examples for galleys are `the main galley', where the continuous % document data gets formatted into and from which columns and pages = are % constructed, and `vbox galley's, such as the body of a minipage % environment or the body of a float (in \LaTeXe only---the new float % mechanism for \LaTeXplus{} will employ horizontally oriented float % bodies). The latter galleys are typically not being split after % formatting though there can be exceptions. % % Low-level interfaces for setting up such galleys and the way objects % are formatted into them are provided by the module % \texttt{galley2}. % % \subsection{Formatting layers} % % The present module is mainly concerned with the % formatting of text in such galleys. % The galley mechanism provides interfaces at four different layers % some of which can be manipulated through the templates provided by % this module. % % \subsubsection{Outer galley dimensions} % % In the bottom layer the external dimensions of a galley are % fixed. In most cases only the horizontal dimension is defined while % the vertical dimension (i.e., the filling direction) remains % unspecified. These dimensions are fixed when initiating a new galley, % using low-level functions, and are not modifiable. The horizontal % overall width of the current galley is available for inspection in % the register |\hsize|.\footnote{This is going to change once there % is a final concept for handling this part of the interface, e.g., % the relation of \texttt{\textbackslash hsize}, % \texttt{\textbackslash columnwidth}, and \texttt{\textbackslash % textwidth}. The latter are actually parameters of the text-page and % should probably not be handled as it is done in \LaTeXe{}, i.e., by % also using \texttt{\textbackslash columnwidth} as a measure for the % current galley width. Perhaps one should introduce a % \texttt{\textbackslash galleywidth} parameter instead of using % \texttt{\textbackslash hsize}.} % There are no templates that only set variable of this layer, though % higher level % templates (e.g., a template for providing minipage functionality) % will of course address this part of the galley mechanism. % % % \subsubsection{Inner galley dimensions} % % The second layer defines the inner horizontal galley dimensions of % the galley, i.e., the measure used for paragraph text and its % positioning within the galley. The current measure of the galley is % available for inspection in the register |\linewidth| and the % indentation from the left outer margin is available in the register % |\@totalleftmargin|.\footnote{The two registers are already % available in \LaTeXe{} and their names have been retained to make % it easier to use a mixture of old and new code. However at some % point the interface should be made more uniform by either providing % two user accessible or two user inaccessible names.} % % This layer can (and should) be manipulated by higher-level templates % through template instances of the type `measure'. These templates % make long-term changes. % % % % % \subsubsection{Paragraph shapes} % % The third layer defines the paragraph shape within the measure as % provided by the second layer. In the absence of any specification % for that layer the paragraph shape used will be that of a % rectangular area of the width of the current measure. % % For this layer we are restricted by the mechanisms offered by % \TeX{}. This means that it is possible to define particular % paragraph shapes such as cutouts only from the top of a paragraph % but not relative to its bottom. % % This layer can (and should) be manipulated by higher-level templates % through template instances of the type `pshape'. Templates in this % layer typically make short-term changes only (i.e. applicable only % to the upcoming paragraph), however templates for long-term changes % are also permissable though none are provided right now. % % A future implementation of the \texttt{galley2} module is probably % going to support pshapes spanning several paragraphs, however at the % moment pshapes apply per paragraph only. % % % \subsubsection{Text formatting within the paragraph shape} % % The forth (and currently final) layer deals with the paragraph % formatting aspects such as hyphenation and justification (h\&j which % gave the current module its name). % % There are several template types in this layer: `hj' is a type that % sets all aspects of h\&j in a single template whereas the types % `justification', `linebreak', and `hyphenation' deal with individual % aspects. % ------_=_NextPart_001_01BF5EA6.34052E00 Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable templates for galley (paragraph) formatting

As promised this is the first installment of templates = and code for galley
formatting, the rest will hopefully follow in couple = of days.

The complete document  can be found at

 ht= tp://www.latex-project.org/code/experimental/galley/xhj.dtx

as an introduction I've added the first part to this = mail below.

I think that this document already serves as a good = introduction to the
high-level aspects of the new galley mechanism and = though one can't make use
of the code without the low-level interfaces I hope = that the documentation
will spawn a lively discussion. A lot of issues and = requests for comments are
already added into the documentation.

Enjoy (and please don't just denote agreement with = polite silence :-)

Frank

% \begin{abstract}
%   This module contains basic templates = for interfacing with the
%   galley mechanism as set up by the = module
%   \texttt{galley2}. These templates are = intended for class
%   designers and are mostly usable out of = the box (i.e., this is one
%   of the modules where providing a = suitable number of default
%   instances is probably sensible since = they would cover 98\% of all
%   usage. In contrast the \texttt{galley2} = module contains only
%   low-level interfaces for
%   direct manipulation of the galley = mechanism which are geared
%   towards package writers having special = needs which are not
%   fulfilled by the templates in this = module.
% \end{abstract}
%
%
%
%
% \section{Introduction}
%
% In \LaTeXplus{} terminology a galley is a = rectangular area which
% receives text and other material filling it = from
% top.\footnote{The predominant direction depends on = the writing
% system and with extensions to \TeX{} such as Omega = there are
% possibilities to define galleys with a different = filling direction.}
% The vertically extend of a galley is normally not = restricted
% (there are exceptions); instead certain chunks are = taken off the top
% of an
% already partially filled galley to form columns or = similar areas
% on a page. This process is typically asynchronous = but there are ways
% to control or change its behavior.
%
% Examples for galleys are `the main galley', where = the continuous
% document data gets formatted into  and from = which columns and pages are
% constructed, and  `vbox galley's, such as the = body of  a minipage
% environment or the body of a float (in \LaTeXe = only---the new float
% mechanism for \LaTeXplus{} will employ horizontally = oriented float
% bodies). The latter galleys are typically not being = split after
% formatting though there can be exceptions.
%
% Low-level interfaces for setting up such galleys = and the way objects
% are formatted into them are provided by the = module
% \texttt{galley2}.
%
% \subsection{Formatting layers}
%
% The present module is mainly concerned with = the
% formatting of text in such galleys.
% The galley mechanism provides interfaces at four = different layers
% some of which can be manipulated through the = templates provided by
% this module.
%
% \subsubsection{Outer galley dimensions}
%
% In the bottom layer the external dimensions of a = galley are
% fixed. In most cases only the horizontal dimension = is defined while
% the vertical dimension (i.e., the filling = direction) remains
% unspecified. These dimensions are fixed when = initiating a new galley,
% using low-level functions, and are not modifiable. = The horizontal
% overall width of the current galley is available = for inspection in
% the register |\hsize|.\footnote{This is going to = change once there
% is a final concept for handling this part of the = interface, e.g.,
% the relation of \texttt{\textbackslash = hsize},
% \texttt{\textbackslash columnwidth}, and = \texttt{\textbackslash
% textwidth}. The latter are actually parameters of = the text-page and
% should probably not be handled as it is done in = \LaTeXe{}, i.e., by
% also using \texttt{\textbackslash columnwidth} as a = measure for the
% current galley width. Perhaps one should introduce = a
% \texttt{\textbackslash galleywidth} parameter = instead of using
% \texttt{\textbackslash hsize}.}
% There are no templates that only set variable of = this layer, though
% higher level
% templates (e.g., a template for providing minipage = functionality)
% will of course address this part of the galley = mechanism.
%
%
% \subsubsection{Inner galley dimensions}
%
% The second layer defines the inner horizontal = galley dimensions of
% the galley, i.e., the measure used for paragraph = text and its
% positioning within the galley. The current measure = of the galley is
% available for inspection in the register = |\linewidth| and the
% indentation from the left outer margin is available = in the register
% |\@totalleftmargin|.\footnote{The two registers are = already
% available in \LaTeXe{} and their names have = been  retained to make
% it easier to use a mixture of old and new code. = However at some
% point the interface should be made more uniform by = either providing
% two user accessible or two user inaccessible = names.}
%
% This layer can (and should) be manipulated by = higher-level templates
% through template instances of the type `measure'. = These templates
% make long-term changes.
%
%
%
%
% \subsubsection{Paragraph shapes}
%
% The third layer defines the paragraph shape within = the measure as
% provided by the second layer. In the absence of any = specification
% for that layer the paragraph shape used will be = that of a
% rectangular area of the width of the current = measure.
%
% For this layer we are restricted by the mechanisms = offered by
% \TeX{}. This means that it is possible to define = particular
% paragraph shapes such as cutouts only from the top = of a paragraph
% but not relative to its bottom.
%
% This layer can (and should) be manipulated by = higher-level templates
% through template instances of the type `pshape'. = Templates in this
% layer typically make short-term changes only (i.e. = applicable only
% to the upcoming paragraph), however templates for = long-term changes
% are also permissable though none are provided right = now.
%
% A future implementation of the \texttt{galley2} = module is probably
% going to support pshapes spanning several = paragraphs, however at the
% moment pshapes apply per paragraph only.
%
%
% \subsubsection{Text formatting within the paragraph = shape}
%
% The forth (and currently final) layer deals = with  the paragraph
% formatting aspects such as hyphenation and = justification (h\&j which
% gave the current module its name).
%
% There are several template types in this layer: = `hj' is a type that
% sets all aspects of h\&j in a single template = whereas the types
% `justification', `linebreak', and `hyphenation' = deal with individual
% aspects.
%

------_=_NextPart_001_01BF5EA6.34052E00--