Position in Markdown beim Konvertieren in PDF mit Knitr und Pandoc
Ich versuche zur Kontrolle der position der ein Grundstück bei der Konvertierung in eine PDF-Datei mit knitr und pandoc. Meine .Rmd-Datei sieht:
# My report
Some text some text some text some text some text some text some text some text some text
```{r myplot, echo=FALSE, fig.pos="placeHere", results='hide'}
library(ggplot2)
ggplot(mtcars, aes(mpg, drat)) + geom_point()
```
Some text some text some text some text some text some text some text some text some text
\usepackage{graphicx}
\begin{figure}[placeHere]
\centering
\includegraphics[width=0.5\textwidth]{placeHere}
\end{figure}
Some text some text some text some text some text some text some text some text some text
Ich bin der Konvertierung in PDF mit den Funktionen, die hier bereitgestellt: http://quantifyingmemory.blogspot.co.uk/2013/02/reproducible-research-with-r-knitr.html
Wie kann ich die Handlung zwischen dem zweiten und Dritten blocks der text? Der latex-code nicht so funktioniert, wie es derzeit steht.
EDIT: Dies ist, was ich versuche jetzt schon.
# My report
```{r setup, include=FALSE}
# set global chunk options
opts_chunk$set(cache=FALSE)
library(ggplot2)
```
```{r, echo=FALSE, fig.height=3}
ggplot(mtcars, aes(disp, hp)) + geom_point()
```
Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some textSome text Some text Some text
Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some textSome text Some text Some text
Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some textSome text Some text Some text
Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some textSome text Some text Some text
```{r, echo=FALSE, fig.height=3}
ggplot(mtcars, aes(vs, am)) + geom_point()
```
Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some textSome text Some text Some text
Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some textSome text Some text Some text
Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some textSome text Some text Some text
```{r, echo=FALSE, fig.height=6}
ggplot(mtcars, aes(disp, cyl)) + geom_point()
```
```{r, echo=FALSE, fig.height=6}
ggplot(mtcars, aes(hp, qsec)) + geom_point()
```
Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some textSome text Some text Some text
```{r, echo=FALSE, fig.height=3}
ggplot(mtcars, aes(hp, wt)) + geom_point()
```
Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some textSome text Some text Some text
```{r, echo=FALSE, fig.height=5}
ggplot(mtcars, aes(mpg, drat)) + geom_point()
```
Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some text Some textSome text Some text Some text
InformationsquelleAutor der Frage luciano | 2013-05-18
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich bin mir nicht bewusst, eine solche option für
pandoc
um die floating-option zahlen bei der Konvertierung ein Markdown-Dokument in LaTeX. Wenn Sie Markdown für seine Einfachheit, die Sie nicht erwarten sollten, zu viel macht aus, sogar mit leistungsstarken tools wiepandoc
. Bottom line: Markdown ist nicht LaTeX. Es wurde speziell für die HTML-statt LaTeX.Zwei Wege zu gehen:
verwenden Sie die Rnw-syntax (R + LaTeX) anstelle von Rmd (R Markdown) (Beispiele); dann werden Sie in der Lage, verwenden Sie die chunk-option
fig.pos='H'
nachdem Sie\usepackage{float}
in der Präambel; in diesem Fall haben Sie die volle power von LaTeX, und pandoc nicht mehr beteiligthack in das LaTeX-Dokument erzeugt, die von pandoc, z.B. so etwas wie
Wenn Sie nicht wie diese Lösungen berücksichtigen anfordern einer neuen Funktion zu pandoc auf Github, dann lehnen Sie sich zurück und warten.
InformationsquelleAutor der Antwort Yihui Xie
Ich eine alternative Lösung. Anstelle von einfügen [H] Symbole in ein latex-Dokument in einer post-hoc-Weise, ich schlage vor, die Neudefinition der figure-Umgebung zu ignorieren, jede position Argumente, und verwenden Sie [H].
Um dies zu tun, erstellen Sie eine .tex-Datei im gleichen Verzeichnis wie die .Rmd-Datei, die definiert die Abbildung der Umwelt, und aktualisieren Sie die YAML-header in der .Rmd, um die Datei während der Kompilierung.
Hier ist ein Beispiel für eine .tex-Datei:
Hier ist Beispiel .Rmd das es enthält (vorausgesetzt, Sie genannt .tex-Datei 'Präambel-latex.tex'):
InformationsquelleAutor der Antwort paleo13
Ich habe ein paar Projekte, wo ich konvertieren aus .Rmd .pdf-Datei (meistens eine beamer-Präsentation) und wollen den Graphen um nicht float (floating Figuren, die wirklich nicht arbeiten mit Präsentationen).
Den Ansatz, den ich verwenden, ist das hinzufügen von einem Raum entkommen, nachdem die Zeile in die .md-Datei. Dies bedeutet, dass der graph innerhalb eines Absatzes eher, als dass Sie einen eigenen Absatz, das bedeutet, dass pandoc wird nicht wickeln Sie es in eine Figur-Umgebung (es bedeutet auch, dass ich nicht verwenden können, eine Beschriftung mit) und daher legt es genau an dieser position.
Nutze ich ein Makefile zu tun, all den Umbauten für mich, also nach dem ausführen von R und knitr es wird automatisch ein Perl-Skript (wenn es getan werden könnte, durch R oder andere tools), die feststellt, wo die Diagramme eingefügt und fügt entgangen Leerzeichen am Ende der Zeile.
InformationsquelleAutor der Antwort Greg Snow
Ich bin mit KnitR und markdown in RSTUDIO, die Lösung für meinen Fall ist, indem in der Präambel
\usepackage{float}
:Und dann das hinzufügen dieser Zeilen von code (Abb.pos='H') in den ersten Zeilen:
InformationsquelleAutor der Antwort Ferran VilBer
Wenn das, was Sie suchen, ist zu einfach manuell Steuern, wo Sie Ihren Figuren, die mithilfe dieser Webseite: http://www.rci.rutgers.edu/~ag978/litdata/Feigen/fand ich, dass, wenn Sie einen umgekehrten Schrägstrich "\" irgendwo nach Ihrer plot-Befehle, die Grundstücke werden nicht schwebend, sondern wird gedruckt werden in Ihrer aktuellen Position.
Wenn Sie nur einige Diagramme angezeigt werden, können Sie ändern, die option für jeden.
In deinem Beispiel:
(etc)
InformationsquelleAutor der Antwort Tamara vdD
Mit einem knitr Haken
Ich irgendwie stolperte über diese Frage und möchten, fügen Sie einen anderen Ansatz. Hier nutze ich die unglaubliche Flexibilität geliefert von knitr Haken. Ich ändern Sie einfach die plot-hook zu verwenden, die knitr Funktion
hook_plot_tex()
. Danach kann ich dann benutzen Sie einfach die chunk-optionfig.pos
ist, wie wir in der Rnw-Dokumente, um die positionfigure
Umfeld (fig.cap
müssen gesetzt werden, um zum aufrufen derfigure
Umfeld).Diese Werke, die in den Beispielen zur Verfügung gestellt von der OP. Ich denke, Sie arbeiten auch (irgendwie) komplizierter Beispiele. Warum dies getan werden kann, leicht und ist nicht der Standard für die Rmd-Dokumente, bin ich nicht sicher. Vielleicht Yihui kann klären.
Hier ist der code:
Ohne
fig.pos='h'
die Handlung wird in der Regel springen Sie auf der zweiten Seite.InformationsquelleAutor der Antwort Martin Schmelzer
Ist dies, was Sie nach:
InformationsquelleAutor der Antwort Tyler Rinker
Die Lösung nicht zu einfach, vielleicht jemand anderes in der Lage zu rationalisieren.
Die grundlegenden Schritte. (Windows 7)
Können Sie das argument
fig.pos="H"
zu den knitr Optionen, entweder Global oder für jedes einzelne Stück. HINWEIS die Hauptstadt H. Dies weist latex auf Platz Bild schwebt genauwo Sie genannt werden in derRmd
Datei.ABER, dies erfordert das Paket verwendet werden, die von latex, das können Sie in der Vorlage, die pandoc verwendet, um zu konstruieren pdf-Dateien. Sie tun dies durch hinzufügen der Zeile
\usepackage{float}
ABER, müssen Sie zuerst finden Sie die aktuelle template-Datei ändern. Ich konnte nicht finden es überall, aber man kann pandoc drucken Sie den Inhalt der Vorlage an die Konsole mit diesem Befehl:
pandoc -D latex
Schneiden Sie und fügen Sie diese template-code in eine leere text-Datei.
Fügen Sie die Zeile:
\usepackage{float}
Speichern Sie unter dem Dateinamen
"default.latex"
in einem Verzeichnis wieC:\Users\YOURNAME\pandoc\templates
Fügen Sie die option
--data-dir=C:/Users/YOURNAME/pandoc/templates"
auf Ihren Anruf, um pandoc ODERPandoc.convert("my file.md", format="pdf", options=c("--data-dir=C:/Users/YOURNAME/pandoc/templates"))
wenn mit pander in R.Ich hoffe, das funktioniert für Sie.
InformationsquelleAutor der Antwort Andrew