Напечатайте латексный код в .tex файл, используя cat () или print () - PullRequest
0 голосов
/ 01 октября 2019

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

\begin{document}

мне нужно написать что-то вроде

cat("\\begin{document}", file= test.tex, append = T, sep="\n")

в R.

Я также пробовал:

sink("test.tex")
print("\begin{document}", quote = F)
sink()

, который почти дает мне желаемый результат, за исключением того факта, что он печатает номера строк перед текстом,более конкретно он печатает:

[1] \begin{document}

Есть ли способ написать простой латексный код на R и заставить его работать должным образом без добавления дополнительных обратных косых черт или номеров строк? Я знаю, что есть более сложные решения, использующие sweave, knitr, Rmarkdown, но я бы предпочел решение, использующее print / writeLines / cat и т. Д.

1 Ответ

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

Если вы вставляете текст в консоль или добавляете файл в R из командной строки, вы можете использовать что-то вроде этого:

latex <- scan(what = character())
\begin{document}
\end{document}

writeLines(latex, "test.tex")

, где пустая строка говорит scan() прекратить чтение. Однако, если вы поместите эти строки в файл и source(), вы получите ошибку, потому что это не весь синтаксически правильный код R.

Вам определенно лучше использовать knitr с.Rnw ввод.

...