it-swarm.com.de

Wie füge ich einen Seitenumbruch in einem von RStudio & markdown erzeugten Word-Dokument hinzu?

Ich schreibe ein Word-Dokument mit R-Markierung in R Studio. Ich kann viele Dinge bekommen, aber im Moment finde ich nicht heraus, wie ich einen Seitenumbruch bekommen kann. Ich habe Lösungen gefunden, aber nur für gerenderte Latex/PDF-Dokumente, dass dies nicht mein Fall ist. 

29

Es ist einfacher, einen Header-Block der fünften Ebene (#####) und eine in YAML definierte Docx-Vorlage zu verwenden. 

Nachdem Sie headingfive.docx in Microsoft Word erstellt haben, wählen Sie Modify Style des Heading 5 aus. Wählen Sie dann Page break before auf der Registerkarte Line and Page Breaks aus und speichern Sie die headingfive.docx-Datei.

 Page break before

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

In Ihrem Rmd-Dokument definieren Sie reference_docx im YAML-Header. Jetzt können Sie den Seitenumbruch ##### verwenden.

Siehe unten.

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

21
Sungpil Han

Mit der Hilfe von John MacFarlane und anderen Mitgliedern der Pandoc-Google-Gruppe habe ich einen Filter zusammengestellt, der dies tut. Bitte sehen Sie: https://groups.google.com/forum/#!topic/pandoc-discuss/FzLrhk0vVbU .__ Kurz gesagt, der Filter muss nach etwas suchen, das er mit openxml ersetzen kann Seitenumbruch. In diesem Fall wird __.\newpage durch <w:p><w:r><w:br w:type=\"page\"/></w:r></w:p>.__ ersetzt. Dadurch kann ein einzelnes Latex-Markup sowohl für die PDF- als auch für die Word-Ausgabe interpretiert werden Joel

13
JAllen

Sie versuchen, einen "Seitenumbruch" oder eine "neue Seite" in einem mit Pandoc erzeugten Word-Dokument zu erzwingen. Ich habe einen Weg gefunden, dies in meiner Umgebung zu tun, aber ich bin nicht sicher, ob dies in jeder Umgebung funktioniert.

Meine Umgebung: * R-studio/Pandoc/MS-Word beginnend mit einer "* .Rmd" -Datei und dem Erzeugen einer DOCX-Datei.

In meiner RMD-Datei besteht die Schlüsselidee darin, dass ich ein TEMPLATE-Dokument (MyFormattingDocument.docx) erstellt habe. In diesem Word-Dokument muss ich die STYLES für Elemente wie "Überschrift 1" und/oder "Überschrift 2" und/oder "Tweak" anpassen. Fußnote "oder was auch immer andere vordefinierte Stile, die ich anpassen möchte.

(SIEHE: http://rmarkdown.rstudio.com/Word_document_format.html#style-reference ) zur Erläuterung der Stilreferenz und zum Festlegen der Header-Informationen in Ihrer RMD-Datei, um ein Referenzdokument anzugeben.

SOOOO in meinem Fall ... i Passen Sie den Stil von "Überschrift 1" in Word an, um einen erzwungenen "Seitenumbruch vor" in die Absatzformatierung für "Überschrift 1" einzufügen. Wie Sie jedes "Überschrift 1" erzwingen, immer "Seitenumbruch" zu erzwingen, unterscheidet sich in verschiedenen Versionen von Microsoft Word. Wenn Sie jedoch der Word-Dokumentation folgen und das Format "Überschrift 1" ändern, DANN hat jedes "Überschrift 1" immer einen Seitenumbruch es.

DANN ... Sie speichern diese Vorlagendatei in einem Verzeichnis, in dem Sie mit der RMD-Datei arbeiten ... und es ist USED ALS eine Vorlage. Der Inhalt der Datei wird ignoriert .... also machen Sie sich keine Sorgen ... Sie können Beispieltext in diese Datei einfügen und testen, ob die Formatierung funktioniert. Der Inhalt wird ignoriert, aber die STYLES werden in der neuen verwendet Word-Dokument, das von der RMD-Datei so erstellt wird .... dann hat jede "Überschrift 1" eine Pause vor ihr.

ANMERKUNG: Sie können dasselbe mit jedem beliebigen Stil tun, der eine Eins-zu-Eins-Zuordnung von PANDOC MARKUP hat, sodass Sie stattdessen einfach alle "Überschriften 3" oder was auch immer machen könnten. Schauen Sie sich einfach an, was Sie in Ihrem von RMD erstellten DOCX sehen "STYLE" wird angewendet, und ändern Sie diesen Stil, auch wenn Sie einige "falsche" Zeilen mit im Wesentlichen leerem Inhalt einfügen müssen, nur um einen Stil im DOCX anzuzeigen

12
Marc Epstein

Hier ist ein R-Skript, das als Pandoc-Filter verwendet werden kann, um LaTeX-Brüche (\pagebreak) durch Word-Brüche zu ersetzen (siehe @ JAllen-Antwort oben). Damit brauchen Sie kein Pandoc-Skript zu kompilieren. Da Sie in R Markdown arbeiten, gehe ich davon aus, dass R im System verfügbar ist.

#!/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, "")

Speichern Sie dies als page-break-filter.R oder ähnliches und machen Sie es ausführbar, indem Sie chmod +x page-break-filter.R im Terminal ausführen.

Dann schließen Sie diesen Filter wie folgt ein: R Markdown YAML:

---
title: "Title
author: "Author"
output:  
  Word_document:
    pandoc_args: [
      "--filter", "/path/to/pandoc-newpage-filter.R"
    ]
---
5
Noam Ross

Sie können das R-Paket worded verwenden. Dies vermeidet die Notwendigkeit einer Word-Vorlagendatei. Siehe https://github.com/davidgohel/worded .

Der Parameter output muss auf worded::rdocx_document gesetzt sein und Sie müssen library(worded) aufrufen.

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

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

Sie können Ihrem Dokument dann <!---CHUNK_PAGEBREAK---> hinzufügen, wenn Sie einen Seitenumbruch wünschen.

Das Paket ermöglicht verschiedene Word-Formatierungsoptionen mit einem ähnlichen Mechanismus.

2
anotherfred

Sungpils Artikel war knapp, funktionierte aber nicht. Dies war die beste Lösung, die ich dafür gefunden habe: https://scriptsandstatistics.wordpress.com/2015/12/18/rmarkdown-how-to-inserts-page-breaks-in-a-ms-Word -dokument/

Noch besser, der Autor hat die Word-Vorlage hinzugefügt, damit dies funktioniert. Der Link des R-Bloggers zu seiner Vorlage ist unterbrochen und die Kopfzeile ist falsch formatiert. Einige Notizen, die ich mitgenommen habe:

1) Möglicherweise müssen Sie den gesamten Pfad zur Word-Vorlage in Ihren Rmd-Header einfügen.

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

2) Die Vorlage unter dem obigen Link hat einige der Standardstileinstellungen geändert, so dass Sie sie wieder ändern müssen

1
Odysseus Ithaca

Es ist keine automatisierte Lösung. Ich habe jedoch den Text "##### page break" zu meinem Markdown-Dokument hinzugefügt. Dann in MS Word mit Suchen/Ersetzen, um den Text "Seitenumbruch" durch "^ m" (manueller Seitenumbruch) zu ersetzen.

0
m_abra

Meine Lösung ist nicht sehr robust, kann aber für einige von uns funktionieren. Wenn Sie einen Seitenumbruch vor jedem Titel der Ebene 1 in Ihrem Word-Dokument benötigen, habe ich dies in der Formatvorlage definiert, die im yaml-Feld reference_docx: ..__ verwendet wird. In diesem Dokument ändern Sie das Format der Überschrift 1 (oder ein gleichwertiges Format), um vor dem Titel einen Seitenumbruch einzufügen. Vergessen Sie nicht, Ihre Vorlage mit dem ersten mit knitr (Pandoc) in RStudio gerenderten Docx zu starten.

0
FabianCid