knitr::is_word_output() 检查当前输出类型是否为单词——就像 knitr::is_latex_output() 和 knitr::is_html_output()
knitr::is_word_output() to check if the current output type is word – just like knitr::is_latex_output() and knitr::is_html_output()
knitr::is_latex_output()
和 knitr::is_html_output()
允许检查当前输出类型是否为 LaTex or HTML respectively.
是否有与 Word 等效的输出格式?
如果不是,最简单易用的解决方法是什么?
---
title: "MWE for different file formats in namespace:knitr"
output:
pdf_document: default
html_document: default
word_document: default
---
```{r}
if (knitr::is_html_output()) {
cat("HTML")
}
if (knitr::is_latex_output()) {
cat("LATEX")
}
if (knitr::is_word_output()) {
cat("WORD")
}
## Error: 'is_word_output' is not an exported object from 'namespace:knitr'
```
从 knitr 1.31 (released in January 2021), you can use knitr::pandoc_to()
开始,采用以下任一方式:
```{r}
if (knitr::pandoc_to("docx")) {
cat("Word")
}
```
```{r, include=knitr::pandoc_to("docx")}
cat("Word")
```
要有条件地输出文字文本内容(而不是R代码),使用asis
chunk最简单(注意我们需要使用echo
选项而不是include
) :
```{asis, echo=knitr::pandoc_to("docx")}
This will only appear in Word documents.
```
```{asis, echo=knitr::pandoc_to("docx", "pdf")}
This will be appear in Word and PDF documents.
```
历史答案
在早期版本的 knitr 中,您可以使用内部 knitr 函数来获取您想要的类型:
is_word_output <- function(fmt = knitr:::pandoc_to()) {
length(fmt) == 1 && fmt == "docx"
}
knitr::is_latex_output()
和 knitr::is_html_output()
允许检查当前输出类型是否为 LaTex or HTML respectively.
是否有与 Word 等效的输出格式?
如果不是,最简单易用的解决方法是什么?
---
title: "MWE for different file formats in namespace:knitr"
output:
pdf_document: default
html_document: default
word_document: default
---
```{r}
if (knitr::is_html_output()) {
cat("HTML")
}
if (knitr::is_latex_output()) {
cat("LATEX")
}
if (knitr::is_word_output()) {
cat("WORD")
}
## Error: 'is_word_output' is not an exported object from 'namespace:knitr'
```
从 knitr 1.31 (released in January 2021), you can use knitr::pandoc_to()
开始,采用以下任一方式:
```{r}
if (knitr::pandoc_to("docx")) {
cat("Word")
}
```
```{r, include=knitr::pandoc_to("docx")}
cat("Word")
```
要有条件地输出文字文本内容(而不是R代码),使用asis
chunk最简单(注意我们需要使用echo
选项而不是include
) :
```{asis, echo=knitr::pandoc_to("docx")}
This will only appear in Word documents.
```
```{asis, echo=knitr::pandoc_to("docx", "pdf")}
This will be appear in Word and PDF documents.
```
历史答案
在早期版本的 knitr 中,您可以使用内部 knitr 函数来获取您想要的类型:
is_word_output <- function(fmt = knitr:::pandoc_to()) {
length(fmt) == 1 && fmt == "docx"
}