> .if <condition> \{\ > . PS > <pic description> > . PE \} > > which does not work. > But why should this not be allowed?
Because nobody has implemented this yet. Pic(1) says: Each picture starts with a line beginning with .PS and ends with a line beginning with .PE. Anything outside of .PS and .PE is passed through without change. There's no mention of spaces between the dot and PS/PE being allowed. The troff code which reads and interprets lines is entirely different from the pic code that scans for .PS and .PE, so there is no reason to assume they behave the same. That gtroff allows those spaces is an extension to the original troff spec, and in gpic it was simply not implemented to date. I guess it's not a really big need, or somebody would have already felt compelled to do so.