[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: [Groff] A progress report
From: |
Ted Harding |
Subject: |
RE: [Groff] A progress report |
Date: |
Wed, 07 Feb 2007 20:50:26 -0000 (GMT) |
On 07-Feb-07 Eric S. Raymond wrote:
> This is for Ted Harding and others who have felt they weren't being
> sufficiently informed about the changes I've been making. Comments
> and suggestions welcomed.
Thanks! Comment regarding EQN following:
> 1. EQN
>
> The new MathML back end to eqn continues to just work.
>
> I thought I had come up with a way to implement mark/lineup, but
> there turns out to be a fundamental problem. The way the troff
> back end does it relies on treating multiple adjacent .EQ/.EN
> spans as a single display -- as in this classic example from the
> original eqn guide:
>
> .EQ I
> G(z)~mark =~ e sup { ln ~ G(z) }
> ~=~ exp left (
> sum from k>=1 {S sub k z sup k} over k right )
> ~=~ prod from k>=1 e sup {S sub k z sup k /k}
> .EN
> .EQ I
> lineup = left ( 1 + S sub 1 z +
> { S sub 1 sup 2 z sup 2 } over 2! + ... right )
> left ( 1+ { S sub 2 z sup 2 } over 2
> + { S sub 2 sup 2 z sup 4 } over { 2 sup 2 cdot 2! }
> + ... right ) ...
> .EN
> .EQ I
> lineup = sum from m>=0 left (
> sum from
> pile { k sub 1 ,k sub 2 ,..., k sub m >=0
> above
> k sub 1 +2k sub 2 + ... +mk sub m =m}
> { S sub 1 sup {k sub 1} } over {1 sup k sub 1 k sub 1 ! } ~
> { S sub 2 sup {k sub 2} } over {2 sup k sub 2 k sub 2 ! } ~
> ...
> { S sub m sup {k sub m} } over {m sup k sub m k sub m ! }
> right ) z sup m
> .EN
>
> Notice that there's a mark in the first span and lineups in
> the second and third.
>
> The only way this can be emulated in MathML is by merging these
> spans and emitting a single big hunk of MathML consisting of
> a one-column, three-cell table with <malignmark> elements
> constraining the layout.
Hmmm, I'm not so sure. "mark/lineup" already works with intervening
text between the EQ/EN blocks, as in the following:
.EQ I
X ~+~ Y ~+~ Z ~~ mark =~~ P ~+~ Q ~+~ R
.EN
which, as we can see from the subsitutions derived
previously,
.EQ I
lineup =~~ U ~+~ V ~+~ W
.EN
which someone might well want to write! (OK criticise the
style if you wish, but it's their choice!). As you can see,
the lineup does its job, despite the intervening text. (And
it carries over past page-breaks too).
I don't see how this is compatible with your description
of troff "treating multiple adjacent .EQ/.EN spans as a
single display"? Maybe it does work like that if the EQ/EN
blocks are adjacent, as in your example; but there must be
some other mechanism there when they are not (as in mine).
> [...]
Ted.
--------------------------------------------------------------------
E-Mail: (Ted Harding) <address@hidden>
Fax-to-email: +44 (0)870 094 0861
Date: 07-Feb-07 Time: 20:50:23
------------------------------ XFMail ------------------------------