Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 在huxtable中打印\u md更改表格格式_R_Latex_R Markdown_Bookdown_Huxtable - Fatal编程技术网

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()