groff
[Top][All Lists]
Advanced

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

Re: [Groff] Colours & smart quotes


From: Werner LEMBERG
Subject: Re: [Groff] Colours & smart quotes
Date: Sun, 04 Mar 2001 18:53:28 +0100 (CET)

> >We looked at TeX too, but it's just too huge and difficult to
> >customise.  Font installation under TeX is demented, even with all
> >the things that are supposed to make it easy.
> 
> I believe that Knuth wrote TeX as an elaborate joke. I'm told he has
> a wicked sense of humor. But in this case, the joke got away from
> him.

You are exaggerating, arent' you? :-) TeX's typographical capabilities
are *far* better than groff's -- I've written a large macro package
for TeX (the CJK package to support East Asian scripts), so I know
what I'm talking about.

Two benefits which groff will probably never have due to the very
different paradigm:

  . TeX can optimize the line breaks for a whole paragraph, whereas
    groff is limited to a single line.

  . The capabilities for mathematical typesetting are probably the
    best of the world -- a lot of extensions to eqn are modeled after
    TeX.

Right today, with the availability of standardized TeX packages like
teTeX and a well defined TeX Directory Structure (TDS) it is easier
than ever to set up TeX.  There is even the TeX Live CD (which you can
get from TeX user groups like TUG or DANTE) which enables you to run
TeX, LaTeX etc. out-of-the-box from the CD; it comes with binaries for
Windows, Linux, Sun, etc.

Something users of groff can only dream of.

> >Of course, it has its limitations -- it doesn't do vertical
> >justification or column balancing out the box, widow and orphan
> >control can only be crudely fudged with .ne
> 
> I'd meant to ask if anyone had worked up a solution to orphans.  My
> first thought was that it could be done by diverting each paragraph
> & acting on the vertical size of the diversion. It's a brute-force
> solution, but could be made to work. A similar approach would work
> for vertical fill.

As mentioned in another mail, this support already exists (but is
neither documented nor tested due to lack of time).  If you compile
groff with -DWIDOW_CONTROL, you'll get two new requests `wdc'
(activate widow control) and `fpl' (flush pending lines) which
prohibits widows.

Similarly, there is column support waiting (including a vjustify
command) in the `column.cc' file.  No documentation either (to be
honest, I have absolutely no idea what it does exactly).

> Actually, there's plenty of "Qbpf" out there -- between the
> groff.texinfo manual, the Groff & Friends HOWTO, and the historic
> AT&T documentation, it's mostly covered. The problem is, "someone"
> needs to collect & organize it all, and perhaps fill in a few
> missing pieces. As a single manual, it would be intimidating -- I
> estimate over 500 pages. My mental outline consists of two
> documents: a user guide (covering the standard macro packages) and a
> macro hacker's reference.

I plan to continue work on groff.texinfo after the next groff release.
It should become right this: A complete reference of all features of
groff plus a user's guide documenting all macro packages.

> Speaking as a technical writer, the other big problem with groff is
> that the public macro packages were around when the Sphinx still had
> a nose. :-) We've learned a lot since then, and have gained
> important electronic publishing avenues such as XML, HTML, and PDF
> as well. I've actually started a prototype of a "-modern" macro
> package; so far it consists of about 50 lines of macro code on top
> of -ms. Some of the design goals are to support cross-references,
> put the table of contents up front where it belongs, build
> screen-oriented PDFs, and easy translation to HTML or possibly
> Docbook. (Grohtml is a brilliant piece of work, but I'm a
> near-purist.) I'll make it available when I have more of it working.

Talking of modern groff macro packages you might have a look at the
current groff snapshot at

  ftp://ftp.ffii.org/pub/groff/devel/groff-current.tar.gz

which comes with a new implementation of the mdoc macros (which has
been almost finished; look at mdoc/*.new -- I'll soon replace the old
macros with the new ones).  You'll hardly find a package which is
`more recent' than this.


    Werner

reply via email to

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