[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Groff] string variable in pic
From: |
Ted Harding |
Subject: |
Re: [Groff] string variable in pic |
Date: |
Sun, 11 Dec 2005 21:29:48 -0000 (GMT) |
On 11-Dec-05 Heinz-Jürgen Oertel wrote:
> Thanks Ted,
> The reason for placing some values in a "global" variable is
> avoiding a large number of macro arguments having always the same
> value. Like with the variable "slant" in my example.
> Look at the example I'm just trying:
>
> ----------------
> .fam H
> .PS
>
> slant = .2
>
>
> define arrowbox { [
>
> box xslanted -slant color $1 $3
> box xslanted slant color $2 $3 \
> with .ne at last box.se + ( -slant, 0)
> # place a box centered above both slanted boxes
> box ht 2*boxht invisible \
> with .ne at 1st box.ne + ( -(slant/2),0)
> ] }
> .PE
>
> .PS
> arrowbox("darkgreen", "darkgreen") \
> "\m[white]1st" "first" "colored" "box"
> arrowbox("darkgreen", "darkgreen") \
> "2nd" "second" "colored" "box"
> arrowbox("darkgreen", "darkgreen") \
> "3rd" "third" "colored" "box"
> arrowbox("darkgreen", "darkgreen") \
> "4th" "fourth" "colored" "box"
> .PE
>
> .PS
> slant = .3
> arrowbox("tomato", "tomato") \
> "\m[black]1st" "first" "colored" "box"
> move -0.2
> arrowbox("tomato", "tomato") \
> "2nd" "second" "colored" "box"
> move -0.2
> arrowbox("tomato", "tomato", outline "white") \
> "3rd" "third" "colored" "box"
> move -0.2
> arrowbox("tomato", "red") \
> "4th" "fourth" "colored" "box"
> .PE
> ---------------------
> The result is attached.
> Is the only way extending pic to accept strings in expressions, or at
> least
> in variable assignments?
>
> Regards
> Heinz
I have found out a way to do it -- essentially, you use the macro
mechanism, but the trick is to define the macro so that the
quotation marks are included in the replacement text.
To take your simple box example as illustration:
.PS
define bcolor { "red" }
define cbox {
box wid $1 color bcolor
}
.PE
.PS
cbox(1) "this is red"
define bcolor { "yellow" }
cbox(1) "this is yellow"
.PE
This ensures that occurrences of
bcolor
are replaced by
"red"
or
"yellow"
*including* the quotation marks!
Best wishes,
Ted.
--------------------------------------------------------------------
E-Mail: (Ted Harding) <address@hidden>
Fax-to-email: +44 (0)870 094 0861
Date: 11-Dec-05 Time: 21:29:45
------------------------------ XFMail ------------------------------