R 在huxtable中打印\u md更改表格格式
我正在使用R 在huxtable中打印\u md更改表格格式,r,latex,r-markdown,bookdown,huxtable,R,Latex,R Markdown,Bookdown,Huxtable,我正在使用huxtable包在bookdown中呈现的PDF中创建表。表格的格式完全符合我的要求,直到我运行print\u md命令,然后边框从列名下面向上移动到标题下面。此外,收割台从居中位置移动到右对齐位置。请查看: df <- data.frame( "colname1" = c("something indicator"), "colname2" = "[Something](http://www.ove
huxtable
包在bookdown中呈现的PDF中创建表。表格的格式完全符合我的要求,直到我运行print\u 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看起来应该是这样的,但是边框错误地向上移动了一行,“Header”现在右对齐,而不是居中对齐。我如何阻止这种情况发生?不要问我为什么它会起作用。但是将print\u md()
更改为set\u markdown()
修复了边框和对齐问题
编辑:我正在给这个答案添加@dash2的评论
print\u md()
导致问题的原因是它将表转换为标记格式,然后R标记从中读取并生成表。因此,一些功能(对齐)在翻译过程中丢失。最好以预期的输出格式打印表,无论是Latex、HTML还是您正在使用的任何格式,而不是降价
但是仍然需要尊重带有标记超链接的单元格-print\u md()
是错误的做法。相反,请使用set\u markdown()
。这将确保在huxtable本身中,带有标记代码的单元格在打印表之前被解释为标记。打印的表格将保留预期的格式
感谢@dash2创建了如此强大的软件包 为什么要使用
print\u md()
以PDF格式打印?for huxtable表示需要降价才能在表中获得超链接支持。在问题的演示中,您可以看到,当您在不使用标记表格式的情况下呈现PDF时,超链接不会正确显示,因为该表的格式不会被读取为标记(我相信超链接的[text](url)
语法是标记)。我认为演示非常清楚,但请告诉我其他情况。我编写了文档。。。我想我应该在这上面多做些工作!在单元格中使用标记与将整个表格打印为标记完全不同。在单元格中使用标记时,huxtable会解释标记本身(并打印出TeX、HTML或其他内容)。因此,使用set_markdown
将某些单元格解释为markdown。然后像正常一样打印huxtable,例如通过评估它。哈!现在我很尴尬。可能性…在我看来,文档是可靠的!也许我应该使用“隐含”这个词……我知道这些标记单元格需要以某种方式识别为标记,但我现在明白了,我的困惑在于“打印”(如打印标记代码)与“渲染”(如解释标记代码,但打印其他格式)之间的区别。你解释的方式很清楚,谢谢!我已经更新了文档,添加了一条说明:-)太棒了!非常感谢这个软件包,很高兴看到这样一个响应迅速的维护人员。当心!
df %>% print_md()