使用超过5位数的内联R代码输出编号渲染pdf文档

wztqucjr  于 2022-12-20  发布在  其他
关注(0)|答案(2)|浏览(156)

问题

它似乎无法呈现内联R代码输出数超过5位的PDF文档。
下面是一个最小的例子来强调这种行为:

---
title: "test"
author:
  - test
output: pdf_document
---

# test

```{r}
a <- 12345

test: r a


这将返回错误:

"D:/Ksoftware/RStudio/bin/pandoc/pandoc" +RTS -K512m -RTS testpdf2-ctex.utf8.md --to latex --from markdown+autolink_bare_uris+ascii_identifiers+tex_math_single_backslash --output testpdf2-ctex.tex --template "C:\Users\krup\Documents\R\win-library\3.4\rmarkdown\rmd\latex\default-1.17.0.2.tex" --highlight-style tango --latex-engine pdflatex --variable graphics=yes --variable "geometry:margin=1in"
! Missing $ inserted.

$
l.137 test: 1.2345\times
10^{}{4}
Here is how much of TeX's memory you used:
10802 strings out of 494923
149004 string characters out of 6180912
210884 words of memory out of 5000000
14019 multiletter control sequences out of 15000+600000
23985 words of font info for 22 fonts, out of 8000000 for 9000
14 hyphenation exceptions out of 8191
28i,3n,32p,240b,290s stack positions out of 5000i,500n,10000p,200000b,80000s

错误: Failed to compile testpdf2-ctex.tex. See testpdf2-ctex.log for more info.
此外: Warning message:
运行命令'"pdflatex" -halt-on-error -interaction=batchmode "testpdf2-ctex.tex"'的状态是1
停止执行


这是一个问题吗?
qcbq4gxm

qcbq4gxm1#

此问题之前已在存储库的问题中指出:https://github.com/rstudio/rmarkdown/issues/160
问题源于科学记数法,而不是数字的长度。当数字超过5位时,默认值为R,将数字转换为1.234 * 10^4,这会导致转换到LaTeX文件时出现问题。
帖子显示了一些解决问题的方法:

1.用$符号将内联代码括起来

RMarkdown中的$符号用于数学表示法:

```{r}
a <- 12345

test: $r a$


**2.全球禁止科学记数法**

您可以通过更改`options`中的`scipen`值来阻止R转换数字:
options(scipen=999)

r a

uubf1zoe

uubf1zoe2#

我无法让上面列出的答案对我起作用(在Mac M1、RStudio 2022.07.1 Build 554R Markdown v 2.14上)。
真正起作用的是内联使用round函数:

`r round(a_number, digits = 0)`

相关问题