Напечатайте латексный текст на основе оператора if для создания PDF - PullRequest
0 голосов
/ 10 октября 2019

Я создаю отчет в формате PDF для людей и хотел бы исключить некоторые разделы, основанные на результатах, чтобы упростить процесс для людей (например, в этом не было обнаружено никаких проблем, поэтому нет необходимости объяснять что-либо с пустымтаблица).

Я пробовал оператор If в блоке R и оператор eval = '' в заголовке блока кода. Он работает правильно, когда я просто включаю таблицу, созданную kableExtra;однако, когда я включаю текст, который я хотел бы объяснить, это выдает мне несколько ошибок, таких как "\ T" - нераспознанный выход в символьной строке "

do_this = (nrow(tableone) >= 1)
print("message
 \begin{Form}
    \TextField[name = tableoneone, width = 10cm,
               height = 3cm,
               multiline=true]{}
\end{Form}  ")

Я хотел бы для этогоне должен быть включен в итоговый документ, если он не прошел проверку (количество строк в первой таблице равно нулю). Однако это не так. Есть ли что-то, что я делаю неправильно, или какой-то другой способ сделать это, что яне думаешь?

1 Ответ

1 голос
/ 10 октября 2019

Проблема вызвана использованием обратной косой черты в строке символов. В R (и большинстве других современных языков) обратная косая черта в строках запускает escape-последовательность .

Если вы хотите включить буквальную обратную косую черту, вам нужно удвоить ееup ('\\').

Кроме того, print не является правильной функцией для использования здесь - print - это (несколько плохо названная) функция для проверки значений в интерактивном режиме . никогда не должно использоваться в скриптах. Вместо этого используйте writeLines или cat для вывода текста на стандартный вывод или в файл, или message для создания не выводимых сообщений.

cat("\\begin{Form}
    \\TextField[name = tableoneone, width = 10cm,
               height = 3cm,
               multiline=true]{}
\\end{Form}\n")
...