在为情节标题提供plotmath
表达式时,我认为paste
就像paste
一样,但现在我不确定。它是plotmath
函数的特殊参数吗?在plotmath paste()
中,paste0()
的行为与paste0
直接引用,而sep
的{{1}}参数被忽略,但未在表达式中引用。如何解释paste()
?请参阅以下四个示例:
paste()
答案 0 :(得分:4)
在plotmath中确实paste
不是经典的paste
。见?plotmath
:
粘贴(x,y,z)并列x,y和z
paste
上下文中的 plotmath
没有sep
参数。
在源代码plotmath.c
中,您可以看到paste
已重新定义:
/*----------------------------------------------------------------------
*
* 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;
}
稍后会在文件中发送:
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);
....
(据说我对C一无所知所以我可能错了)