gpt4 book ai didi

r - 无法使用 cat() 渲染自定义 block

转载 作者:行者123 更新时间:2023-12-04 03:24:34 27 4
gpt4 key购买 nike

this chapter 中所述在 R Markdown Cookbook 中,可以使用以下语法在 R Markdown 文件中制作自定义 block (此处,将一些文本居中):

:::{.center data-latex=""}
Hello
:::

但是,使用 cat() 来呈现这种 block (如 this chapter 中所述)不起作用。

完整示例:

---
output: rmarkdown::pdf_document
---

<!-- WORKS -->
:::{.center data-latex=""}
Hello
:::

<!-- DOES NOT WORK -->
```{r, results='asis', echo=FALSE}
print(
'
:::{.center data-latex=""}\n
Hello\n
:::
'
)
```

为什么第二部分没有正确呈现?怎么解决?

最佳答案

有两个问题:

  1. 您使用 print() 而不是 cat()(即使您在帖子中引用了 cat()
  2. 您在每行的开头放置空格,以防止呈现自定义 block 。
  3. 如果您喜欢缩进行(像我一样),那么我建议像在第二个示例中那样将每一行作为一个单独的字符串。这还有一个好处,您可以通过 sep 参数添加换行符,而不必手动添加它们。

可重现的例子:

---
output:
rmarkdown::pdf_document:
keep_md: true
---

<!-- WORKS -->
:::{.center data-latex=""}
Hello
:::

<!-- WORKS TOO -->
```{r, results='asis', echo=FALSE}
cat('
:::{.center data-latex=""}\n
Hello\n
:::
', sep = "\n"
)
```

<!-- WORKS TOO -->
```{r, results='asis', echo=FALSE}
cat(':::{.center data-latex=""}',
'Hello',
':::', sep = "\n"
)
```

enter image description here

关于r - 无法使用 cat() 渲染自定义 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67850223/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com