## LATEX-L@LISTSERV.UNI-HEIDELBERG.DE

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

 Subject: Re: templates for galley (paragraph) formatting From: Frank Mittelbach <[log in to unmask]> Reply To: Mailing list for the LaTeX3 project <[log in to unmask]> Date: Tue, 25 Jan 2000 10:46:09 +0100 Content-Type: text/plain Parts/Attachments: text/plain (96 lines)
Achim,

sorry for the late answer but my family caught scarlet fever and that stopped
everything and all for a good number of days

> Here are my first impressions:

thanks, they have been helpful --- any more by anybody else?

> o Name of parameters. At the moment the old LaTeX2e names like \hsize,
>   \@totalleftmargin, etc. are used so that old code does still work.
>   IMHO one should introduce new names right from the start while keeping
>   the old versions in addition. Otherwise, you get in trouble when
>   the interface is finally cleaned up since all LaTeX2e* code using the
>   galley package has to be rewritten as well.

you may as well be right. on the other hand I don't mind rewriting --- there
is nearly nothing that shouldn't get rewritten at some point at least once (as
the code refer to galley"2" you can imagine that I have indeed already
rewritten that bit twice (actually three times by now))

but assuming I want to use new names now: do you have any good naming
suggestions? I couldn't make up my mind which is one reason why the situation
is as it is now.

> o As mentioned in the item above, the user-level interface is missing.

I think this is the most important statement --- and if it isn't clear to
Achim who already wrote a couple of templates himself then I assume that it
isn't clear to others as well (and I thought this would be obvious :-)

so let me help and explain it:

THERE IS NO INTENDED USER INTERFACE TO THE GALLEY TEMPLATES

well, perhaps not quite so (see below), but in essense the above is true.

so what are they good for then?

they are intended for use in other templates. for example, take Achim's
theoremstyle template, or a template for specifying list layouts, or a
template for specifying captions to a float.

a template like that normally would like to be able to specify things like

- the measure
- how to justify the text within the measure
- how to do linebreaking
- whether or not to allow hyphenation

it can do so by using the i' key in the template declaration, eg

measure-setup =i {measure}
hj-setup      =i {hj}

or instead of the last one

justification-setup =i {justification}
linebreak-setup     =i {linebreak}
hyphenation-setup   =i {hyphenation}

or a subset thereof.

so to get my
captions look like
the current  para-
graph (or not as it       <-- overfull hbox :-)
looks horrible :-)

i could specify in a caption template

justification-setup = centerfirst,

a design I had to implement in the past for some journal of Wiley.

Does this make the intended use of those low-level templates a bit clearer?
Does it makes some sense?

-----------------

As for a document user interface ...
of course one can and probably should provide things comparable to
\raggedright or \begin{flushleft} or \fuzzy, e.g.,

\DeclareDocumentCommand\raggedright {}
{ \UseInstance{justification}{raggedright} }

and so on but I don't consider this the foremost reason for providing these
templates and instances.[1]

frank

[1] in fact the above declaration is quite different from the \raggedright of
2e as it applies to the next (and any following) and not to the current
paragraph as in 2e, but this is a different issue.
`