我正在使用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看起来应该是正确的,但是边框错误地上移了一行,并且"Header“现在是右对齐而不是居中对齐。我如何阻止这种情况的发生?
发布于 2021-04-15 01:45:45
不要问我为什么它能工作。但将print_md()更改为set_markdown()解决了边界和对齐问题。
编辑:我将@dash2的评论添加到这个答案中。
print_md()造成问题的原因是它将表转换为markdown格式,然后R Markdown读取并生成一个表。因此,一些特征(对齐)会在翻译过程中丢失。最好以预期的输出格式打印表格,可以是Latex、HTML或您正在使用的任何格式,而不是markdown。
但是带有标记超链接的单元格仍然需要被尊重- print_md()是错误的方式。相反,请使用set_markdown()。这将确保在huxtable本身内,在打印表格之前,具有标记代码的单元格被解释为标记。然后,打印的表格将保留所需的格式。
感谢@dash2创建了一个如此强大的包!
https://stackoverflow.com/questions/67096546
复制相似问题