Erw*_*ATP 6 r ms-word r-markdown huxtable
假设我有以下 rmd:
\n---\ntitle: "Table won\'t work"\nauthor: "Exhausted student"\ndate: "2022/01/28"\noutput: \n bookdown::word_document2\n---\n\n```{r table, echo=F, warning=F, message=F}\nlibrary(tidyverse)\na <- tibble(\n constants = c("c", "NA", "h", "e", "H2O"),\n values = c(2.998e8, 6.022e23, 6.626e-34, -1.602e-19, 18.02)\n)\n\nknitr::kable(a, digits = 35)\n```\nRun Code Online (Sandbox Code Playgroud)\n它在 Word 中生成此表格。
\n我需要科学格式来使用上标和乘号(即 2.998 \xc3\x97 10 8),并且某些单元格需要下标(例如 N A和 H 2 O)。
\n决赛桌应该是这样的。我怎样才能做到这一点?
\nhuxtable包及其markdown()功能:我设法将一些内容格式化为H~2~O,然后启用跨表降价huxtable(a) %>% `markdown<-`(TRUE)。据作者称,它无法识别语法,并且在可预见的将来显然不会起作用。flextable和as_sub():产生正确的格式。我将标签传递到flextable::compose(),标签类似于as_paragraph(list_values = list("H", as_sub("2"), "O")。代码显然太长了;另外我必须一一操作细胞。技术上仍然可行,但我确实有包含 100 多个单元格的表格需要格式化。编辑:该表现在可以工作了!非常感谢Ma\xc3\xabl\ 的回答,但请检查我自己的发现以查看我的最终结果:
\n\n您可以使用波形符 ( ~) 来输入下标,使用脱字符 ( ^) 来输入上标;并用于sprintf获取预期的数字格式:
---
title: "Table won't work"
author: "Exhausted student"
date: "2022/01/28"
output:
bookdown::word_document2
---
```{r table, echo=F, warning=F, message=F}
library(tidyverse)
expSup <- function(x, digits=3) {
sprintf(paste0("%05.", digits, "f x 10^%d^"), x/10^floor(log10(abs(x))), floor(log10(abs(x))))
}
a <- tibble(
constants = c("c", "N~A~", "h", "e", "H~2~0"),
values = expSup(c(2.998e8, 6.022e-23, 6.626e-34, -1.602e-19, 18.02))
)
knitr::kable(a)
```
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1958 次 |
| 最近记录: |