Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/68.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
knitr中的科学记数法:如何改进排版_R_Knitr_Rstudio_R Markdown - Fatal编程技术网

knitr中的科学记数法:如何改进排版

knitr中的科学记数法:如何改进排版,r,knitr,rstudio,r-markdown,R,Knitr,Rstudio,R Markdown,knitr的强大功能之一就是它可以进行智能取整,因此您可以避免许多sprintf/round/paste0迂回 在一位客户抱怨我给的小数不正确后,我指出,对于可能以科学记数法打印的数字,忘记$$是非常危险的。但同一位客户抱怨说,我使用科学记数法的格式看起来很难看,因为类似乳胶的数学与主字体不匹配 @yihui对已结束的问题()发表评论后,$$是必需的 有人有智能的解决方案吗?现在,我又回到了以前使用sprintf格式化所有内容的时代 --- output: html_document:

knitr的强大功能之一就是它可以进行智能取整,因此您可以避免许多
sprintf/round/paste0
迂回

在一位客户抱怨我给的小数不正确后,我指出,对于可能以科学记数法打印的数字,忘记$$是非常危险的。但同一位客户抱怨说,我使用科学记数法的格式看起来很难看,因为类似乳胶的数学与主字体不匹配

@yihui对已结束的问题()发表评论后,$$是必需的

有人有智能的解决方案吗?现在,我又回到了以前使用sprintf格式化所有内容的时代

---
output: 
  html_document:
    theme: cosmo
---

I use the cosmo theme because it shows the typographic problem more clearly.

```{r}
options(digits=2)
mean = c(2.31310934, 1.23456e-7)
std = c(0.31310934, 6.54321e-7)
```

digits is `r getOption("digits")`

The mean is `r mean[1]` with a standard deviation of `r std[1]`.

This looks good

The mean is `r mean[2]` with a standard deviation of `r std[2]`.

Note that the aboves looks like "1.23510".

The mean is $`r mean[2]`$ with a standard deviation of $`r std[2]`$.

您总是可以重新定义
内联
输出钩子,以避免许多显式的
sprintf/round/paste0

knitr::knit_hooks$set(inline = function(x) {
  knitr:::format_sci(x, 'md')
})
这将使用
1.23×;10^-7^
用于科学符号,如果您的输出格式仅为HTML,则应该可以很好地使用


对于特定类型的输出格式来说,这是一个简单的问题,但是当您希望数字格式能够跨所有格式(包括HTML、Word、LaTeX等)移植时,这是很困难的。这就是为什么在KNITR 1.7中需要代码> $$/COD>。

你会考虑改变文档的字体以匹配MaTjax的输出吗?这似乎更容易。我相信所有你需要的是一对夫妇的css行选择STIX字体。Brr。。。回到六十年代看?不是说我会喜欢。谢谢,一辉,这应该是一个解决办法。你可能不应该把它藏在文档中的“小要点”下面,我相信在接下来的一周里,会有更多的人被这一变化所困扰。是否可以将上面的钩子设置为HTML中的默认钩子,并在$$未在其他格式中使用时发出警告?@dietermene在某种程度上,我同意这不是一个小的更改。但是,我不能将上面的钩子设置为HTML中的默认钩子,因为对于那些在数字周围有
$$
的人来说,这将失败。考虑到可移植性,唯一的解决方案是需要
$
,不幸的是。。。