Что работает
Я могу сделать субтитры из моего PDF-файла динамическими на основе пользовательского ввода. Я также могу сгенерировать «полудинамическое» имя файла, используя поле субтитров из YAML
(рабочий код указан ниже)
Что не работает
Однако я не могу сделать и то и другое, будучи файлом субтитров и выходным файлом, который основан на вводе пользователя.
Поскольку rmarkdown :: yaml_front_matter (inputFile) $ title работает, я попытался использовать субтитр rmarkdown :: yaml_front_matter (inputFile) $, однако, похоже, он содержит неоцененный r-код.
Длинный выстрел был rmarkdown :: yaml_front_matter (inputFile) $ params $ sub_title, но это привело к ошибке. Я не знаю, установлены ли параметры и доступны ли они с помощью этой функции.
Похожие вопросы
Код
---
params:
sub_title:
input: text
label: Sub Title
value: 'my_Sub_Title_and_File_Name'
title : "Parameterized_Title_and_output_file"
subtitle : "`r params$sub_title`"
output:
pdf_document:
keep_tex: false
knit: (
function(inputFile, encoding) {
rmarkdown::render(
input = inputFile,
encoding = encoding,
params = 'ask',
output_file = file.path(
paste0(rmarkdown::yaml_front_matter(inputFile)$title, '.pdf'))) })
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```
## R Markdown
This is an R Markdown document. ....
Приведенный выше код работает, так как он относится к заголовку статического поля yam.
Замена заголовка на субтитры завершится неудачно, как и при использовании параметров $ subtitle
ОБНОВЛЕНИЕ: лучший обходной путь (пока)
Сегодня я поиграл с крючком Knitr, не понимая, как он работает, и наткнулся на уродливый обходной путь. Приведенная ниже кодировка, кажется, делает свое дело.
Было бы хорошо, если бы кто-то мог объяснить, почему это работает, и / или если он может быть написан менее уродливо.
Пока я потерял блестящий экран ввода, но думаю, что это можно добавить позже. Хорошо, что кнопка R-Studio Knit все еще может быть использована.
Обратите внимание, что оба субтитра и имя файла: Это работает! даже с пробелом и восклицательным знаком. Файл сохраняется как This Works! .Pdf
Имя файла и субтитры устанавливаются путем присвоения текста объекту pSubTitle.
Обратите внимание, что params все еще находятся в YAML, но не приводят к блестящему всплывающему экрану, как они назначены в крюке Knitr
---
params:
sub_title:
input: text
label: Sub Title
value: 'my_Sub_Title_and_File_Name'
title : "Parameterized_Title_and_output_file"
subtitle : "`r params$sub_title`"
output:
pdf_document:
keep_tex: false
knit: (
function(inputFile, encoding) {
pSubTitle <- 'This Works!'
rmarkdown::render(
input = inputFile,
encoding = encoding,
params = list(sub_title = pSubTitle),
output_file = pSubTitle) })
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```
## R Markdown
This is an R Markdown document. ....