TextGrob R - fontface=bold 但没有粗体

TextGrob R - fontface=bold but no bold

我正在尝试为我的图形页面创建一个 header,文本为粗体。我正在使用的代码如下,我设置了 fontface=bold 但这似乎不起作用。 还有其他地方我需要设置吗?

t = textGrob(expression(underline("My Sample Header")),gp=gpar(fontfamily="serif",fontsize=16, fontface="bold",lineheight=1),vjust=.3,hjust=2.15)

由于没有人回答这个问题,您可以通过两种方式进行:

方法 1: 使用表达式,但 expression(bold(underline(...))) 如:

t = textGrob(expression(bold(underline("My Sample Header"))),gp=gpar(fontfamily="serif",fontsize=16, fontface="bold",lineheight=1),vjust=.3,hjust=1)
grid.draw(t)

方法 2: 编写一个包装函数,将 textGrob 与一行(可能是更好的选择)结合起来:

underlineText <- function(text, gpar, vjust, hjust){
  txt <- textGrob(text, gp=gpar, vjust = vjust, hjust = hjust)
  undLine <- segmentsGrob(x0 = txt$x - grobWidth(txt), y0 = txt$y - unit(0.55, "grobheight", txt), x1 = txt$x, y1 = txt$y - unit(0.55, "grobheight", txt))
  gt <- grobTree(txt, undLine)
}

grid.draw(underlineText("My Sample Header", gpar(fontfamily="serif",fontsize=16, fontface="bold",lineheight=1), vjust = 0.3, hjust = 1))