从grid.arrange中删除textGrob的空白

从grid.arrange中删除textGrob的空白,r,grid,gridextra,grob,R,Grid,Gridextra,Grob,我是个新手,我正在尝试创建一个简单的网格。排列对象,但不知道如何创建一个紧凑/紧凑的布局 下面是一个简单的例子,说明了我正在尝试运行什么以及我得到的结果 库(网格) 图书馆(gridExtra) name=textGrob(“我的名字”,gp=gpar(fontsize=20,fontface=“bold”)) name2=textGrob(“第二个名字”,gp=gpar(fontsize=16)) tbl=表格B(头部(虹膜)) 网格排列(名称、名称2、待定) 更新: 使用答案,我发现我可

我是个新手,我正在尝试创建一个简单的
网格。排列
对象,但不知道如何创建一个紧凑/紧凑的布局

下面是一个简单的例子,说明了我正在尝试运行什么以及我得到的结果

库(网格)
图书馆(gridExtra)
name=textGrob(“我的名字”,gp=gpar(fontsize=20,fontface=“bold”))
name2=textGrob(“第二个名字”,gp=gpar(fontsize=16))
tbl=表格B(头部(虹膜))
网格排列(名称、名称2、待定)

更新: 使用答案,我发现我可以得到文本紧凑,但我仍然努力使表格的权利下的文本

库(网格)
图书馆(gridExtra)
name=textGrob(“我的名字”,gp=gpar(fontsize=20,fontface=“bold”))
name2=textGrob(“第二个名字”,gp=gpar(fontsize=16))
tbl=表格B(头部(虹膜))
保证金=单位(0.5,“线”)
grid.newpage()
网格排列(名称、名称2、待定),
高度=单位c(总高度(名称)+1.2*边距,
grobHeight(名称2)+保证金,
单元(1,“空”))

通常,您会对单个grob使用
top=
参数。像这样的两个grob,可能最容易将它们组合在一张表中;主要的障碍是GTHT不考虑理由,所以你必须自己调整位置,

library(gtable)
justify <- function(x, hjust="center", vjust="top", draw=FALSE){
  w <- sum(x$widths)
  h <- sum(x$heights)
  xj <- switch(hjust,
               center = 0.5,
               left = 0.5*w,
               right=unit(1,"npc") - 0.5*w)
  yj <- switch(vjust,
               center = 0.5,
               bottom = 0.5*h,
               top=unit(1,"npc") - 0.5*h)
  x$vp <- viewport(x=xj, y=yj)
  if(draw) grid.draw(x)
  return(x)
}
title <- gtable_col('title', grobs = list(name,name2), 
                    heights = unit.c(grobHeight(name) + 1.2*margin, 
                                   grobHeight(name2) + margin))

grid.newpage()
grid.arrange(justify(title, vjust='bottom'), justify(tbl))
库(gtable)
证明正当