[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Preaching DSSSL (Re: using LOUT)

From: Valeriy E. Ushakov
Subject: Preaching DSSSL (Re: using LOUT)
Date: Wed, 27 Aug 1997 19:01:27 +0400

On Wed, Aug 27, 1997 at 10:43:14AM +0200, address@hidden wrote:

> 1. Can I leave out page numbers on specific pages?

You will have to write some code to do this.  Place a marker at the
end of each page with default value "yes, I want a page header on this
page".  Define a command you will use in your text to mark the page as
headless, it will just put another marker wich says "no, I don't want
a header on this page".  Then in your header query the &&following
marker to see if you want a header on this page or not.  If you
haven't marked you page as headless, it will pick up the default "yes"
at the end of the page.  If you have - it will find pick up "no" from
your marker.

This seems like a pretty generic technique to use with Lout.  Look at
my classification marking code at the web archive of the list:
<URL:http://www.ptc.spbu.ru/mail-archives/lout/0138.html>.  It uses
the same idea: place marker with default value as a search treshold.
Put ordered set of markers before/after, possibly sending them to
their place using galleys.  Query the following or preceding according
to your situation to pick up the value.  Thus you emualate casing with
sorting, for you don't have mutable variables to case.

But on the other hand... You don't want *that*.  At least this is the
answer to your question as it's asked.  May be you have something
specific in mind, in this case I apologize for aiming at wrong target.

I will preach a bit.  Once again: it's preaching.  Nothing personal.
I want to make this very clear.

Yes, you can write a couple of definitions to suppress page headers
and/or footers at random by placing markers in the text saying "no
header on this page".  But this is not what you want in the long run.
Please, get me right, it's not "arguing with customer".

The limit text formatting systems converge at is separation of logical
structure of the document from its presentation style.  SGML together
with recetly standardized DSSSL is perhaps the closest to this ideal.
This is my strong belief that SGML/DSSSL is the Right Thing.

It's acceptable to add few embellishments manually here and there in
one page document that you will print once to give away (an ad, for
example).  In a document you will have to maintain it means asking for

Why whould you want to omit the header on that particular page?  What
makes it special?  After all, all the graphic devices we use in
printed matter (different faces, sizes and shapes, varying spacing
etc) serve the ultimate goal of rendering some logical structure by
means of presentation style.

This is what SGML/DSSSL are about.  Define the logical structure of
your document (DTD).  Write a document marking it up using the
structure just defined (your doc).  Define how different elements of
this structure are to be presented (DSSSL style sheet).  Run an
application that will apply your style sheet to your document and
produce some rendering: visual (paper/screen), touchable (braille),
audible... whatever.

By omiting page header you are communicating some structural
information to the reader, aren't you.  So make the structure explicit
and not some particular rendering you want to use now.  You well may
want to use different rendering the other day.  Define new layout
(hint: tweak existing one a bit, they are pretty general) that has
special arrangement for this special type of pages, than mark them in
your document as such (or it even may be unnecessary, look how lout
can treat the first page in a special way if asked to).  With this
approach the presentation is distinctly separated from content.  The
day you will need to change the presentation you will thank God you
have spent some time in the day 1 to make that special document class.

I have to apologize again for my exaggerated style, but it's
preaching, you see.

> 2. Line spacing with, for instance, "2fc @Break" did not give any
>    result. I do not understand why.

`2fc' is not a valid gap.  Both `f' (font size) and `c' (centimeter)
are length units.  You need to specify gap mode with the secod letter
or omit it, in which case default mode `e' (edge-to-edge) will be

It's strange that it gives no results.  "unknown gap mode" error is
reported by Lout in this situation.

> 3. Hyphenation in the Dutch Language is not always correct. Shall I
>    give those deviations?

Lout uses the same hyphenation algorithm and hyphenation files TeX
does (well, with a different header, but the meat is exactly the
same).  So if you have a Dutch hyphenation file for TeX that does its
job better, use it after copying the header from the Dutch hyphenation
file shipped with Lout.  And don't forget to let Jeff know about this
so that future Dutch users can benefit from better hyphenation file.

> 4. How can i make a white block from the top of my page to the
>    middle of the page?

Again, why?  As a kludge try sending something into the following

    import @DocumentLayout
    def @NextPageReserve
      into { @PageTopPlace&&following }
    { //0.5r }

PS: Now back to SGML/DSSSL.  There's free DSSSL style engine called
Jade <URL:http://www.jclark.com/jade/> by James Clark (author of groff
and nsgmls).  Currently it has RTF and TeX backends.

RTF backend's real target is actually an M$ Word.

A LaTeX macro package for use with the output of TeX backend is under
development by Sebastian Rahtz. A draft is on CTAN in macros/jadetex.

What I would very much like to see is Lout backend implemented.  I
have read DSSSL standard and it jusk *asks* for Lout backend.
Similarities were striking.  If someone will write the backend it will
promote Lout.  It will promote Jade as well, as people will get
PostScript output without installing the TeX monstrosity and going
through dvips.  It will promote the SGML/DSSSL in general wich is
very, very good.

Writing Lout definitions for the backend output should be an order of
magnitude easier than with LaTeX, as Lout can naturally support most
of the flow objects analogous to those of DSSSL.

And it will generate a good karma as well. :-)

PPS: I hope I was not too offensive in my furious reply to questions
     so innocuous.  If I was, I sincerely apologize.  This DSSSL stuff
     was on my mind for past few weeks so it just poured out.

SY, Uwe
address@hidden                         |       Zu Grunde kommen
http://www.ptc.spbu.ru/~uwe/            |       Ist zu Grunde gehen

reply via email to

[Prev in Thread] Current Thread [Next in Thread]