[R] scalable < > delimiters in plotmath
David Winsemius
dwinsemius at comcast.net
Sun Sep 12 21:42:29 CEST 2010
On Sep 12, 2010, at 6:15 AM, baptiste auguie wrote:
> Thanks everyone. I've also had a look at plotmath.c where bgroup is
> defined for "[", "{", "(", "." but not "<". It seems quite trivial to
> add it, at first sight, however there is a part that I don't
> understand in the RenderDelim routine,
>
> static BBOX RenderDelim(int which, double dist, int draw,
> mathContext *mc,
> pGEcontext gc, pGEDevDesc dd)
> {
>
> // [... snipped ...]
>
> case '(':
> top = 230; ext = 231; bot = 232; mid = 0;
> break;
> case ')':
> top = 246; ext = 247; bot = 248; mid = 0;
> break;
>
> These integer codes make no sense to me, I have no clue which ones I
> should use for < and >.
Does this help? (I think they are using Symbol PS fonts with decimal
indexing.)
> as.octmode(c(230, 231, 232, 246, 247, 248) )
[1] "346" "347" "350" "366" "367" "370"
plot(1,1, xlab= expression(
symbol("\346")~ # upper 1/3 of left paren
symbol("\347")~ # to left of center bar
symbol("\350")~ # lower 1/3 of left paren
symbol("\366")~ # upper 1/3 of right paren
symbol("\367")~ # to right of center bar
symbol("\370") ) ) # lower 1/3 of right paren
(caveat: Maybe not standard glyph-names.)
I added octal annotation to the TestChars(font=5) call that the points
help page offers:
TestChars(font=5)
for(j in 1:14) {
for(i in 0:16){
text(i+0.2, j+.6, labels=as.octmode(i+(j+1)*16), cex=.5)}}
I do not see a trio or pair of glyphs that would form an angle bracket.
--
David.
> As far as I understand these codes might
> correspond to extended ascii characters whose boundaries and positions
> we want to borrow. Then again, maybe it's something else entirely.
>
> Any hints?
>
> Best wishes,
>
> baptiste
>
>
>
>
> On 12 September 2010 03:27, David Winsemius <dwinsemius at comcast.net>
> wrote:
>>
>> On Sep 11, 2010, at 9:00 PM, Peter Ehlers wrote:
>>
>>> On 2010-09-11 16:14, Dennis Murphy wrote:
>>>>
>>>> Hi Baptiste,
>>>>
>>>> You need to use the symbol("\nnn") concept, where nnn denotes the
>>>> octal
>>>> symbol number. For< it's 074 and for> it's 076. This little
>>>> test seemed
>>>> to
>>>> work:
>>>>
>>>> plot(1, 1, main = expression(symbol("\074")~'x, y'~symbol("\076")))
>>>>
>>>> HTH,
>>>> Dennis
>>>
>>> It's a matter of taste, but I would use "\341" and "\361".
>>> However, these are still not scalable, AFAICS.
>>
>> Not exactly scalable angles, but you can fake it:
>>
>> plot(1, 1, main = expression(symbol("\341")~scriptstyle( atop(x,y)
>> )~symbol("\361")), cex.main=3)
>>
>> scriptstyle shrinks the inner atop() material, and since I tested
>> on a Mac
>> it should work for Baptiste.
>>
>> --
>> David.
>>>
>>> -Peter Ehlers
>>>
>>>>
>>>> On Sat, Sep 11, 2010 at 10:01 AM, baptiste auguie<
>>>> baptiste.auguie at googlemail.com> wrote:
>>>>
>>>>> What do people use to show angle brackets< > in R graphics?
>>>>> Have I
>>>>> missed something obvious?
>>>>>
>>>>> Thanks,
>>>>>
>>>>> baptiste
>>>>>
>>>>> On 9 September 2010 17:57, baptiste auguie
>>>>> <baptiste.auguie at googlemail.com> wrote:
>>>>>>
>>>>>> Dear list,
>>>>>>
>>>>>> I read in ?plotmath that I can use bgroup to draw scalable
>>>>>> delimiters
>>>>>> such as [ ] and ( ). The same technique fails with< >
>>>>>> however, and I
>>>>>> cannot find a workaround,
>>>>>>
>>>>>> grid.text(expression(bgroup("<",atop(x,y),">")))
>>>>>>
>>>>>> Error in bgroup("<", atop(x, y),">") : invalid group delimiter
>>>>>>
>>>>>> Regards,
>>>>>>
>>>>>> baptiste
>>>>>>
>>>>>> sessionInfo()
>>>>>> R version 2.11.1 (2010-05-31)
>>>>>> x86_64-apple-darwin9.8.0
>>
>> David Winsemius, MD
>> West Hartford, CT
More information about the R-help
mailing list