【问题标题】:knitr kable formatting cell text as ordered listknitr kable 将单元格文本格式化为有序列表
【发布时间】:2020-11-24 07:18:36
【问题描述】:

我在 rmarkdown/html 文档中创建了一个表格,当它采用例如 (123) 的格式时,它无意中将单元格值更改为有序列表。下面是一个例子。任何帮助都将受到欢迎。

---
output: html_document
---

df <-
  data.frame(
    col1 = c("a", "b"),
    col2 = c("(123)", "(61)"),
    stringsAsFactors = FALSE
    )

knitr::kable(
  df,
  format = "html",
  align = c('lr')
)

【问题讨论】:

    标签: r r-markdown knitr kable


    【解决方案1】:

    这些值被识别为降价并且pandoc认为(123)(61)是列表项。试试

    df <- data.frame(col1 = c("a", "b"),
                     col2 = c("(123)", "(61)"),
                     stringsAsFactors = F)
    
    df$col2 <- gsub("\\(", "&lpar;", df$col2)
    df$col2 <- gsub("\\)", "&rpar;", df$col2)
    

    用他们的 HTML entity code 替换括号。

    注意: stringsAsFactors = F 是 R > 4.0 中的新默认值

    【讨论】:

    • 感谢您修复了有序列表问题,但单元格现在被设置为数学表达式,并且仍然不显示括号,欢迎任何进一步的想法。
    • 好的,确实错过了。添加了另一种方法。
    【解决方案2】:

    另一种方法是禁用fancy_lists 扩展。这将全局应用于文档,因此您可能更喜欢@MartinSchmelzer 的解决方案。

    只需将其放入您的 YAML 中即可:

    output: 
      html_document:
        md_extensions: "-fancy_lists"
    

    完成此操作后,您只会得到带有数字(没有字母或罗马数字)的有序列表,并且它们的格式必须是 1.,而不是 (1)1) 等。

    【讨论】:

      猜你喜欢
      • 2016-01-27
      • 1970-01-01
      • 2019-03-27
      • 1970-01-01
      • 2019-11-26
      • 1970-01-01
      • 2023-03-13
      • 1970-01-01
      • 2020-10-17
      相关资源
      最近更新 更多