让knitr/kable显示乳胶代码以供进一步编辑(.Rmd文件)

问题描述 投票:0回答:1

与之前的问题类似,我必须将用于从 Rmarkdown 文件创建 kableExtra 表的代码块转换为 Overleaf 中的纯 LaTeX 格式。不幸的是,我仍然不明白如何通过运行 Rmd 文件中的 KableExtra 表来获取乳胶代码。

以下是 YAML 标头:

---
[...]
output:
  pdf_document: default
  html_document:
---

以下是我的代码:

{r, results='asis', echo=FALSE}
res_kbl = kableExtra::kbl(merg, longtable=TRUE, booktabs = T, caption = "Table 1", digits = 2) %>%
  kableExtra::kable_styling(latex_options = c("striped", "HOLD_position"), font_size = 10) %>%
  kableExtra::add_header_above(c(" " = 1, "in Complete sample" = 2, "in Restricted sample" = 2, "MAJ" = 4, "MIN" = 4, "MAJ" = 4, "MIN" = 4)) %>%
  kableExtra::add_header_above(c(" " = 1, "No. of funds" = 4, "Fund Size Complete sample (USD million nominal)" = 8, "Fund Size Restricted sample (USD million nominal)" = 8)) %>%
  kableExtra::add_header_above(c(" " = 5, "Complete sample" = 8, "Restricted sample" = 8)) %>%
  kableExtra::row_spec(row = nrow(merg) - 1, underline = T, extra_css = "border-bottom: 2px solid;")

我的问题:如何获取我创建的 res_kbl 表的 Latex 代码?

如有任何建议,我们将不胜感激!

latex r-markdown knitr kable kableextra
1个回答
2
投票

如果我理解正确的话,你想获得kable的LaTex代码

res_tbl

在这种情况下,

  1. format = "latex"
    (或
    kableExtra::kbl()
    )中指定
    knitr::kable()
  2. 接下来,
    writeLines(res_kbl)
    • 相反,您不需要分配
      res_kbl
      变量。
    • 您可以使用额外的管道运算符
      writeLines()

writeLines(res_kbl)
的结果将给出您想要的代码。但代码可能很复杂,因为
kableExtra
包有很多功能。


此外,仅使用

writeLines()
时,块选项中不需要
asis
部分。但是,如果您想在最终文档而不是控制台中使用
comment
选项,则可能会出现问题。将注释设置为该块中的空白文本。

© www.soinside.com 2019 - 2024. All rights reserved.