[Top][All Lists]
[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.