0

我正在使用该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", "Header", after = 0) %>% 
  merge_cells(1, 2:3) %>% 
  set_align(1, everywhere, "center") %>% 
  set_tb_padding(1, everywhere, 0) %>%
  set_bold(1, everywhere)
df

这使: 在此处输入图像描述

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

这可以通过以下代码来解决:

df %>% print_md() 

这使: 在此处输入图像描述

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

4

1 回答 1

1

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

编辑:我在这个答案中添加了@dash2 的评论。

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

但是仍然需要尊重带有降价超链接的单元格——print_md()这只是错误的做法。相反,使用set_markdown(). 这将确保在 huxtable 本身中,具有降价代码的单元格在打印表格之前被解释为降价。然后打印的表格将保留预期的格式。

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

于 2021-04-14T17:45:44.570 回答