Ich verwende knitr (1.9.5 und 1.9.17) und rmarkdown (0.5.3.1), und möchte die Position in der PDF-Ausgabe halten. Die generierte PDF-Datei funktioniert gut, wenn die Chunk-Option fig.pos="H"
verwendet wird.
Die Zahlenposition wird jedoch nicht gehalten, wenn fig_caption: yes
in der
Yaml-Header.
Wie soll ich dieses Problem beheben? Danke für Anregungen.
BEARBEITEN:
Nach dem Erlernen der Float-Umgebung von Latex. Ich füge float
package in die Kopfzeile hinzu.
Aber die generierte tex-Datei verwendet immer htbp
in der figure
-Umgebung bezüglich aller fig.pos
-Optionen. Nach dem manuellen Ändern von htbp
in H
werden die Positionen aller Figuren gehalten.
Dies ist mein Beispiel für rmd-Datei:
%Vor% Wie Yihui in seiner Antwort erwähnt hat ( Abbildung Position in Markdown bei der Konvertierung in PDF mit Knitr und Pandoc ), können wir nicht zu viel über die Formatierung von mardown erwarten. Um dieses Problem zu umgehen, schreiben Sie einfach einige R-Skripts, um htbp
zu H
zu ersetzen.
Verglichen mit knit
von knitr Paket, fand ich render
von rmarkdown ist besser, um eine tex
Datei zu exportieren. Denken Sie daran, keep_tex: yes
in der yaml-Kopfzeile Ihrer rmarkdown-Datei hinzuzufügen.
Wie Andrew betont hat, funktioniert fig.pos
nicht in Blöcken, aber es funktioniert, wenn es in globale Optionen eingefügt wird:
Update Sehen Sie sich diese bessere Lösung hier an. (Die Zusammenfassung des Problems unten ist immer noch gut, aber folgen Sie dem Link zu einer besseren Lösung).
Um einige Tests in RStudio zusammenzufassen
Das Knitr-Chunk-Argument fig.pos="H" funktioniert, solange fig_caption: yes
nicht im yaml-Header ist.
Jede Figur in der generierten .tex sieht so aus
%Vor% Aber wenn fig_caption: yes
im yaml-Header ist, sieht das .tex wie folgt aus
fig.pos = "H"
wurde nicht verwendet, "htbp"
ist stattdessen vorhanden.
Eine Abhilfe hierfür mit RStudio:
setzen
%Vor%im yaml sowie
%Vor% Dann suchen und ersetzen Sie [htbp]
durch [H]
in der generierten .tex-Datei
Öffnen Sie dann die .tex-Datei in RStudio und verwenden Sie die Schaltfläche "PDF kompilieren".
Beispiel .Rmd
%Vor%Die Option, die für mich funktioniert hat:
In der .tex zu Beginn: \usepackage{float}
.
Am Anfang der Rmd: knitr::opts_chunk$set(fig.pos = 'H')
. Die H
in Großbuchstaben).
Und in jedem Chunk mit einem Bild: fig.cap="lorem blabla"
und out.extra=''
(Parameterwert = leere Zeichenkette).
Nein muss definiert werden:
fig_caption: yes
und keep_tex: yes
in der yaml.
Mit diesen Optionen behält das Bild seine Position bei, entweder für include_graphics
und die von R-Code erzeugten Plots.
Ich habe sie in der bookdown
-Umgebung verwendet und das PDF und das HTML wie erwartet erzeugt:)
Obwohl die Antwort von @Bangyou funktioniert, kompliziert es das Stricken.
Sie können auch eine globale Standardoption für die Figurenplatzierung in Latex festlegen, einschließlich Ihrer YAML-Kopfzeile einschließlich:
%Vor% Wie hier erklärt hier (und hier für den \makeat...
-Teil).
Auf diese Weise können Sie einfach den Knit-Button in RStudio oder rmarkdown :: render verwenden und damit fertig werden.
Problem ist, dass alle Zahlen mit H gefüllt werden und du nicht in der Lage bist, einen zu setzen.
Tags und Links r r-markdown knitr