r bquote:删除近似等于 plotmath 符号前的 space

r bquote: remove the space before approximately equal plotmath symbol

这几乎是我想要的情节标题:

plot(1:10)
ylabs<-c("All","Native","Exotic")
i=1
mtext(bquote("("*.(letters[i])*")"~.(ylabs[i])~"("%~~%italic("H'")*")"),side=3)

但我不想要 space 在“(”之后和近似等号之前。在符号之前添加 * 分隔符会产生错误

mtext(bquote("("*.(letters[i])*")"~.(ylabs[i])~"("*%~~%italic("H'")*")"),side=3)

Error: unexpected SPECIAL in

尽管 * 分隔符在 bquote 的其他部分有效。我可以通过包含大约来获得正确的间距。直接等号

mtext(bquote("("*.(letters[i])*")"~.(ylabs[i])~"("*"≈"~italic("H'")*")"),side=3)

但我想知道是否有办法让 * 在 plotmath 符号之前工作?

我尝试使用表达式而不是 bquote,但无法将字符与索引 objects 组合起来。

诀窍是将整个文本放入一个下标中:

plot(1:10)
ylabs<-c("All","Native","Exotic")
i=1
b <- bquote(phantom(0)["("*.(letters[i])*")"~.(ylabs[i])~"(" %~~%italic("H'")*")"])
mtext(b, cex = 2, side=3)