Подтвердить что ты не робот

Как добавить разрыв страницы в текстовый документ, созданный RStudio & markdown

Я пишу документ Word с меткой R в R Studio. Я могу получить много вещей, но на данный момент я не понимаю, как я могу получить разрыв страницы. Я нашел решения, но только для сделанного латексного/pdf-документа, что это не мой случай.

4b9b3361

Ответ 1

Существует более простой способ использования блока заголовка пятого уровня (#####) и шаблона docx, определенного в YAML.

После создания headingfive.docx в Microsoft Word вы выберите " Modify Style Heading 5, а затем выберите " Page break before Line and Page Breaks вкладке " Line and Page Breaks " и сохраните файл headingfive.docx файла headingfive.docx.

Page break before

---
title: 'Making page break using fifth-level header block'
output: 
  word_document:
    reference_docx: headingfive.docx
---

В вашем документе Rmd вы определяете reference_docx в заголовке YAML, и теперь вы можете использовать разрыв страницы #####.

См. Ниже.

https://www.r-bloggers.com/r-markdown-how-to-insert-page-breaks-in-a-ms-word-document/

Ответ 2

С помощью John MacFarlane и других пользователей в группе pandoc google я собрал фильтр, который делает это. Пожалуйста, посмотри: https://groups.google.com/forum/#!topic/pandoc-discuss/FzLrhk0vVbU Короче говоря, фильтр должен искать что-то, заменяемое openxml для разметки страницы. В этом случае \newpage заменяется на <w:p><w:r><w:br w:type=\"page\"/></w:r></w:p> Это позволяет интерпретировать одну латексную разметку как для pdf, так и для вывода слов. Joel

Ответ 3

То, что вы пытаетесь сделать, это заставить "разрыв страницы" или "новую страницу" в текстовом документе, сгенерированном с помощью Pandoc. Я нашел способ сделать это в своей среде, но я не уверен, что он будет работать в каждой среде.

Моя среда: * R-studio/Pandoc/MS-WORD, начиная с файла "*.Rmd" и создавая файл DOCX.

В моем файле RMD ключевой идеей является то, что я создал то, что действует как документ TEMPLATE (MyFormattingDocument.docx), и в этом документе слова я настраиваю STYLES для таких вещей, как "Заголовок 1" и/или "Заголовок 2", или "сноска" или любые другие предопределенные стили, которые я хочу настроить.

(СМОТРИТЕ ЭТО: http://rmarkdown.rstudio.com/word_document_format.html#style-reference) для объяснения ссылки на стиль и как установить информацию заголовка в вашем файле RMD, чтобы указать ссылочный документ.

SOOOO в моем случае... я настраиваю стиль "Заголовок 1" в WORD, чтобы включить принудительный "разрыв страницы перед" в форматировании абзаца для "Заголовок 1" . Точно так же, как вы каждый раз нажимаете "Заголовок 1" на "Разрыв страницы" в разных версиях Microsoft WORD, но если вы следуете документации WORD и изменяете стиль "Заголовок 1" , ТОГДА у каждого "заголовка 1" всегда будет разбиение страницы перед он.

THEN... вы сохраняете этот файл шаблона в каком-то каталоге, с которым работаете, с файлом RMD... и он используется как шаблон. СОДЕРЖАНИЕ файла игнорируются.... так что не волнуйтесь... вы можете поместить образец текста в этот файл и проверить, что форматирование все работает... СОДЕРЖАНИЕ ИМЕЕТСЯ, но СТИЛИ ИСПОЛЬЗУЮТСЯ в новом который будет создан файлом RMD, поэтому... тогда у каждого "заголовка 1" будет разрыв перед ним.

ПРИМЕЧАНИЕ. Очевидно, вы могли бы сделать то же самое с ЛЮБЫМ стилем, который имеет индивидуальное сопоставление от PANDOC MARKUP, чтобы вы могли просто сделать все "Заголовок 3" или что-то еще... просто посмотрите на свое RMD создал DOCX, что применяется "STYLE", а затем настраивает этот стиль, даже если вам нужно вставить некоторые "поддельные" строки с по существу пустым содержимым только для того, чтобы заставить стиль появляться в DOCX

Ответ 4

Вот скрипт R, который можно использовать в качестве фильтра pandoc для замены разрывов LaTeX (\pagebreak) на разрывы слов, согласно ответу @JAllen выше. При этом вам не нужно компилировать скрипт pandoc. Поскольку вы работаете в R Markdown, я предполагаю, что в системе есть R.

#!/usr/bin/env Rscript

json_in <- file('stdin', 'r')
lat_newp <- '{"t":"RawBlock","c":["latex","\\\\newpage"]}'
doc_newp <- '{"t":"RawBlock","c":["openxml","<w:p><w:r><w:br w:type=\\"page\\"/></w:r></w:p>"]}'
ast <- paste(readLines(json_in, warn=FALSE), collapse="\n")
ast <- gsub(lat_newp, doc_newp, ast, fixed=TRUE)
write(ast, "")

Сохраните это как page-break-filter.R или что-то в этом роде и сделайте его исполняемым, запустив chmod +x page-break-filter.R в терминале.

Затем включите этот фильтр в R Markdown YAML следующим образом:

---
title: "Title
author: "Author"
output:  
  word_document:
    pandoc_args: [
      "--filter", "/path/to/page-break-filter.R"
    ]
---

Ответ 5

Вы можете использовать пакет R worded. Это позволяет избежать необходимости создания файла шаблонов. См. Https://github.com/davidgohel/worded.

Параметр output должен быть установлен в worded::rdocx_document и вам нужно вызвать library(worded).

---
date: "2018-03-27"
author: "David Gohel"
title: "Document title"
output: 
  worded::rdocx_document
---

'''{r setup, include=FALSE}
library(worded)
'''

Затем вы можете добавить <!---CHUNK_PAGEBREAK---> к вашему документу всякий раз, когда вам нужен разрыв страницы.

Пакет позволяет использовать различные варианты форматирования слов с использованием аналогичного механизма.

Ответ 6

Статья Сунгпил была близка, но не совсем работала. Это было лучшее решение, которое я нашел для этого: https://scriptsandstatistics.wordpress.com/2015/12/18/rmarkdown-how-to-inserts-page-breaks-in-a-ms-word-document/

Еще лучше, автор включил шаблон Word, чтобы сделать эту работу. Ссылка R-blogger на его шаблон нарушена, а заголовок отформатирован неправильно. Некоторые заметки, которые я взял:

1) Возможно, вам потребуется включить весь путь к шаблону слова в свой заголовок Rmd, например:

output: 
    word_document:
      reference_docx: C:/workspace/myproject/mystyles.docx

2) Шаблон на ссылке выше изменил некоторые настройки стиля по умолчанию, поэтому вам нужно будет их вернуть

Ответ 7

Мое решение не очень надежное, но может работать для некоторых из нас. Предполагая, что вам нужен разрыв страницы перед каждым заголовком уровня 1 в вашем текстовом документе, я определил это в шаблоне формата, используемом в поле yaml reference_docx:. В этом документе вы изменяете формат заголовка 1 (или эквивалент), чтобы вставить разрыв страницы перед заголовком. Не забудьте запустить свой шаблон с первым docx, созданным с помощью knitr (pandoc) в RStudio.

Ответ 8

Это не автоматизированное решение. Но я добавляю текст "##### page break" в мой документ с уценкой. Затем в MS Word используйте find-replace, чтобы заменить текст "разрыв страницы" на "^ m" (ручная пауза страницы).

Ответ 9

Хорошо, я нашел это в документах по уценке.

Горизонтальное правило/разрыв страницы

Три или более звездочки *** или тире ---.