微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

huxtable 中的 print_md 更改表格式

如何解决huxtable 中的 print_md 更改表格式

我正在使用 huxtable 包在 bookdown 呈现的 PDF 中创建表格。表格完全按照我想要的方式格式化,直到我运行 print_md 命令,之后边框从列名下方向上移动到标题下方。此外,标题从居中位置移动到右对齐。看看:

df <- data.frame(
  "colname1" = c("something indicator"),"colname2" = "[Something](http://www.overleaf.com)","colname3" = "[Something again](http://www.overleaf.com)")

df <- df %>% 
  as_hux() %>%
      theme_basic() %>% 
      set_tb_padding(2)

df <- df %>% 
  set_contents(1,2:3,c("colname2","colname3"))  %>% 
  insert_row("","Header",after = 0) %>% 
  merge_cells(1,2:3) %>% 
  set_align(1,everywhere,"center") %>% 
  set_tb_padding(1,0) %>%
  set_bold(1,everywhere)
df

这给出了:

enter image description here

表格格式正确。但。您会注意到 URL 的格式不正确。它应该只显示括号内的部分,点击后会将您带到括号中的站点

这可以通过以下代码修复:

df %>% print_md() 

这给出了:

enter image description here

现在 URL 看起来应该是这样,但边框错误地向上移动了一行,并且“标题”现在是右对齐而不是中心对齐。我如何阻止这种情况发生?

解决方法

不要问我为什么它有效。但是将 print_md() 更改为 set_markdown() 修复了边框和对齐问题。

编辑:我将@dash2 的评论添加到此答案中。

print_md() 导致问题的原因是它将表格转换为 Markdown 格式,然后 R Markdown 从中读取并生成表格。所以一些特征(对齐)在翻译中丢失了。最好以预期的输出格式打印表格,无论是 Latex、HTML 还是您使用的任何格式,而不是 Markdown。

但是仍然需要尊重带有降价超链接的单元格 - print_md() 只是错误的处理方式。而是使用 set_markdown()。这将确保在 huxtable 本身内,带有 markdown 代码的单元格在打印表格之前被解释为 markdown。打印的表格将保留预期的格式。

感谢@dash2 创建了如此强大的包!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。