groff
[Top][All Lists]
Advanced

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

Re: [Groff] parsing a corner specification


From: Ted Harding
Subject: Re: [Groff] parsing a corner specification
Date: Tue, 21 Aug 2007 18:16:26 +0100 (BST)

On 21-Aug-07 16:14:58, Keith Marshall wrote:
> On Tuesday 21 August 2007 06:42, Werner LEMBERG wrote:
>> Well, it seems that you've hit a behaviour which is (a) quite obscure
>> since there has never been a report about it,
> 
> Perhaps because the expression in question is not just obscure, but is 
> rather unnatural.  Given the preceding
> 
>   .PS
>   A: circle "A"
> 
> what is the intent of
> 
>   B: A left
> 
> IOW, to which *object* is the label `B' to refer?  Since, this is 
> followed by
> 
>   circle "B" at B
>   .PE
> 
> presumably the intention is to create a reference to a location, rather
> than to an object, but surely the more natural way to express this is
> 
>   .PS
>   A: circle "A"
>   B: circle "B" at A.w
>   .PE
> 
> which causes B to refer to the intended location, i.e. the centre of  
> the circle object `B', which becomes coincident with the location of 
> the leftmost extremity of the circle object `A'.  Certainly, this is 
> the way I would write it, and I suspect that most other regular pic 
> users would do likewise, so it is unlikely that the anomalous behaviour
> would have been discovered in normal usage.
> 
>> Feel free to remove it completely in case it is
>> the most convenient solution.
> 
> FWIW, I believe that the usage
> 
>   B: A left
> 
> and also
> 
>   B: A upper left
> 
> are erroneous; IMO, both should be rejected.
> 
> Regards,
> Keith.

I've been watching this thread for a while, in case anything
unexpected came out of it. Since this hasn't happened, here's
what I'd been intending to contribute.

The keyword "left" in pic, as it stands and on its own,
designates a direction, as in "line left from ... " or
"line up 1 left 2".

With reference to objects, such as circles, squares, ... ,
you have the classic ".n", ".nw", ".w", ".sw", ".s", ".se",
".e" and ".ne" "compass points". But you can also use
".left" (NB NOT "left") for ".w", ".top" for ".n", ".right"
for ".e", ".bottom" for ".s". Hence

  " " "Bottom" at last circle .bottom

means the same as 

  " " "Bottom" at last circle .s

But you can also "left", "right" along with "of" in a similar
way, as in

  " " "Bottom" at bottom of last circle

  "Left " at left of last circle rjust

However, in Joel Denny's original query:

  .PS
  A: circle "A"
  B: A upper left
  circle "B" at B
  .PE

"left" is not on its own, but preceded by "upper". I think it's
the syntax of "upper" (and similarly "lower") which triggers a
special interpretation of "left".

On the other hand, if you omit "upper", as in

  .PS
  A: circle "A"
  B: A left
  circle "B" at B
  .PE

then it is a syntax error (and a semantic one too, since what
could be meant by a "circle drawn leftwards"?).

If you want to have code similar to the above, then it should be

  .PS
  A: circle "A"
  B: A .left
  circle "B" at B
  .PE

Is there a known implementation of pic which does it the way
Joel Denny expects (i.e. as in "B: A left")?

Or have I missed some hidden point in this thread?

Best wishes,
Ted.

--------------------------------------------------------------------
E-Mail: (Ted Harding) <address@hidden>
Fax-to-email: +44 (0)870 094 0861
Date: 21-Aug-07                                       Time: 18:16:21
------------------------------ XFMail ------------------------------




reply via email to

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