Я знаю, что на этот вопрос уже был дан ответ в StackOverflow .

Однако я попытаюсь четко объяснить свою ситуацию.

  1. Я пишу 3 отдельных документа, используя RStudio и RMarkdown. На самом деле, я не включаю никаких фрагментов, так что это может быть чисто синтаксис Markdown.
  2. Эти три документа (.Rmd) имеют общие разделы, которые идентичны в трех из них.
  3. Среди них есть и другие разделы.

Чтобы писать эффективно , я хотел бы написать общие разделы с использованием синтаксиса Markdown в отдельных файлах из трех упомянутых мною документов.

Таким образом, я хотел бы включить и связать эти общие разделы в трех документах (в их соответствующих местах).

В связи с этим я бы хотел, чтобы knitr при преобразовании в HTML PDF или DOCX учитывал синтаксис отдельных и общих разделов. Я имею в виду, если есть подзаголовки, выделенные жирным шрифтом, курсивом и т. Д., Которые необходимо правильно идентифицировать и преобразовывать .

Есть идеи, как это сделать?

1
antecessor 24 Июн 2020 в 19:13

1 ответ

Лучший ответ

Это можно сделать разными способами. Вот первые два, которые мне пришли в голову:

Использование readLines:

Это в основном подход из вопроса, на который вы указали, но вам нужно добавить параметр фрагмента results="asis":

```{r results="asis"}
cat(readLines('somefile.txt'), sep = '\n')
```

Использование read_chunk:

Вы также можете прочитать несколько фрагментов кода из внешнего сценария, а затем использовать механизм asis для отображения фрагментов, на которые вы ссылаетесь с помощью ref.label:

Ваш файл RMD:

```{r}
knitr::read_chunk("mychunks.R")
```

```{asis, ref.label="firstchunk"}
```

```{asis, ref.label="secondchunk"}
```

Файл chunks.R :

## ---- firstchunk

Text

# Header

Text

## ---- secondchunk

Text2

# Header2

Text2
2
CL. 24 Июн 2020 в 19:48