groff
[Top][All Lists]
Advanced

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

Re: [Groff] Question on Using pic for Entity Relationship Diagra


From: Ralph Corderoy
Subject: Re: [Groff] Question on Using pic for Entity Relationship Diagra
Date: Fri, 03 Nov 2000 11:43:48 +0000

Hi Ted,

> > The pic input is below.  I want to position the USERPREFS entity
> > relative to SECURITY's position.  But it seems that En_security isn't
> > where I think it should be, hence the XXX and crossed lines in the
> > middle of nowhere.
> 
> I think the immediate answer to your problem is that you are using
> a reference to the named block En_security inside another named
> block En_userprefs. If you remove the lines
> 
>   En_userprefs: [
> 
> and
> 
>   ]
> 
> surrounding that block then it comes out as (I think) you want it.

Yes, you're right.

> As to whether this behaviour is in order, I'm not sure. The 'pic'
> manual is ambiguous about this (scope of block names) according to my
> reading, though my intuitive expectation is that it should work as
> you intended. I will have to think a bit about this one.

Having re-read Raymond's description I can see why it might not work as
would be intuitive.

If I place a move outside of the block that I want to appear at the
location it works fine.

    En_security: [
        ...
    ]

    En_users: [
        ...
    ]

    move to En_security .ne + (1, 0)
    En_userprefs: [
        ...
    ]

So I guess I'm happy.

> Possibly also you are being a bit lavish with block labels and, in
> particular, you have used the label "L:" several times for different
> things; I think only the most recent will apply (this may be what you
> want, of course).

I want each entity to have a label because it will make relationship
lines easier to draw later.  Raymond says labels aren't constants but
variables, and `L:' can be viewed as an assignment as in `A: A + (1,
0)' so they shouldn't be a problem.  I wanted to refer to a temporarily
important line for a bit and using just `L' instead of a unique name
for each seemed the way to go and avoided the longer `last line' or 2nd
last line, etc.

    L: line dashed
    { "assigned to" at last line .n - (0.05, 0.1) rjust }
    L: line
    crowsfoot(L.s)
    { "limited by" at L.s + (0.05, 0.1) ljust }

Many thanks for your prompt reply.


Ralph.


reply via email to

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