【问题标题】:print_md in huxtable changes table formattinghuxtable 中的 print_md 更改表格格式
【发布时间】:2021-04-14 17:37:54
【问题描述】:

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

【问题讨论】:

  • 为什么还要使用print_md() 来打印PDF?
  • huxtable 的 documentation 表示您需要 markdown 才能在表中获得超链接支持。您可以在问题的演示中看到,当您在不使用降价表格式的情况下渲染 PDF 时,超链接无法正确显示,因为表格出来的格式没有被读取为降价(超链接的 [text](url) 语法是降价,我相信)。我认为演示很清楚,但请告诉我其他情况。
  • 我写了文档……我想我应该多做些工作!在单元格中使用 markdown 与将整个表格打印为 markdown 完全分开。当您在单元格中使用 markdown 时,huxtable 会解释 markdown 本身(并打印出 TeX、HTML 或其他内容)。因此,使用set_markdown 将某些单元格解释为降价。然后像往常一样打印 huxtable,例如通过评估它。
  • 哈!好吧,现在我很尴尬。这种可能性......在我看来,文档是可靠的!也许我应该使用“暗示”这个词......我知道那些降价单元需要以一种或另一种方式被识别为降价,但我现在看到我的困惑在于“打印”之间的区别(如打印降价代码) 与“渲染”(如解释降价代码,但打印其他格式)。你解释的方式很清楚,谢谢!

标签: r latex r-markdown bookdown huxtable


【解决方案1】:

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

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

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

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

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

【讨论】:

  • 我已更新文档以添加澄清说明 :-)
  • 太棒了!非常感谢这个包,很高兴看到这样一个响应迅速的维护者。保重!
猜你喜欢
  • 2013-04-05
  • 1970-01-01
  • 1970-01-01
  • 2021-07-23
  • 1970-01-01
  • 2020-05-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多