Indeed paste
in plotmath is not the classic paste
. See ?plotmath
:
paste(x, y, z) juxtapose x, y, and z
paste
in the context of plotmath
doesn't have a sep
argument.
And in the source code plotmath.c
you can see that paste
is redefined:
/*----------------------------------------------------------------------
*
* Code for Concatenate Expressions
*
*/
static int ConcatenateAtom(SEXP expr)
{
return NameAtom(expr) && NameMatch(expr, "paste");
}
static BBOX RenderConcatenate(SEXP expr, int draw, mathContext *mc,
pGEcontext gc, pGEDevDesc dd)
{
BBOX bbox = NullBBox();
int i, n;
expr = CDR(expr);
n = length(expr);
for (i = 0; i < n; i++) {
bbox = CombineBBoxes(bbox, RenderElement(CAR(expr), draw, mc, gc, dd));
if (i != n - 1)
bbox = RenderItalicCorr(bbox, draw, mc, gc, dd);
expr = CDR(expr);
}
return bbox;
}
It is dispatched later in the file:
static BBOX RenderFormula(SEXP expr, int draw, mathContext *mc,
pGEcontext gc, pGEDevDesc dd)
{
SEXP head = CAR(expr);
....
else if (ConcatenateAtom(head))
return RenderConcatenate(expr, draw, mc, gc, dd);
....
(That being said I know nothing about C so I may be wrong on that one)