groff
[Top][All Lists]
Advanced

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

Re: [Groff] pic - drawing a line back to the beginning


From: Werner LEMBERG
Subject: Re: [Groff] pic - drawing a line back to the beginning
Date: Tue, 17 Oct 2006 09:05:02 +0200 (CEST)

> # here's the part I'm interested in
> line left from last box .w;
> line up to 1st box .w + (-0.5,0);
> arrow to 1st box .w;
> .PE
> 
> One can get a straight line by adjusting the coordinates in the next- 
> to-last line, although for a more complex chart (like the real one  
> was), it might take several iterations. On my computer, I get a left,  
> up, then a diagonal instead of just left & diagonal. (PS file attached.)
> 
> I was wondering if anyone could: 1) explain why the dogleg appears;  

This is caused by the `up' keyword.  Your code is equivalent to

  line up then to 1st box .w + (-0.5,0);

Just say

  line to 1st box .w + (-0.5,0);

> 2) provide a more elegant method of drawing a line back up to the  
> first box that doesn't require guesswork.

What about this:

  .PS
  # Left_Arrow(start, end, distance)
  define Left_Arrow {
    x1 = $1.w.x;
    x2 = $2.w.x;
    xoff = min(x1, x2) - $3;
    line from $1.w to (xoff, $1.y);
    line to (xoff, $2.y);
    arrow to $2.w
  }

     down;
  A: box wid 1 "xyzzy";
     arrow;
     box "plugh";
     arrow;
  B: box "plove";
     Left_Arrow(B, A, 0.2);
  .PE


     Werner




reply via email to

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