Как не допустить, чтобы текст убегал со страницы при вязании в pdf?

#r-markdown

#r-markdown

Вопрос:

Это мой первый вопрос о переполнении стека, поэтому я сделаю все возможное, чтобы следовать рекомендациям.

Моя проблема в том, что когда я вяжу в формате pdf, я часто не могу предотвратить удаление кода со страницы.

код, убегающий со страницы в pdf

Я знаю, что мой первый шаг — просмотреть ранее заданные вопросы, и я нашел несколько, которые касаются моего вопроса, но ни один из ответов на эти вопросы не сработал для меня.

Я пробовал следующее:

  1. добавление options(width=X)

  2. добавление {r, tidy=TRUE, tidy.opts=list(width.cutoff=X)}

Обратите внимание, что я пробовал разные числа для X в обеих моих попытках.

Заранее благодарю вас за помощь.

Комментарии:

1. Я понимаю, что вам нужен вывод в формате PDF, но ЧАСТО лучшей альтернативой является вязание вашего документа в формате HTML, а затем печать его в формате PDF из веб-браузера. Это, вероятно, решит проблему с шириной текста, поскольку HTML намного более динамичен, а после печати в PDF у вас будет статический файл.

2. Спасибо, Дэниел, за совет о вязании в формате HTML и последующей печати в формате pdf. Это действительно устранило проблему с шириной текста. Большое спасибо! Кроме того, спасибо за ссылку на кулинарную книгу Rmarkdown.

3. Если я вам помог, пожалуйста, поддержите мой комментарий и, возможно, ответьте. Кулинарная книга rmarkdown еще даже не опубликована, но определенно будет полна отличных советов и хитростей

4. Привет, Дэниел. Я поддержал ваш комментарий и ответ, но поскольку мой показатель репутации меньше 15 (я только что зарегистрировался на Stack Overflow несколько дней назад), это говорит о том, что мои голоса были подсчитаны, но не будут отображаться публично. Еще раз спасибо за вашу помощь!

Ответ №1:

Ответ из Rmarkdown Cookbook заключается в использовании файла latex. Ваш Rmarkdown YAML должен выглядеть следующим образом

 ---
output:
  pdf_document:
    pandoc_args: --listings
    includes:
      in_header: preamble.tex
---
  

и затем ваш файл integration.tex должен содержать это

 lstset{
  breaklines=true
}
  

это поможет обернуть ваш текст. Для этого используется пакет latex listings

дополнительная документация