Abbildung position in markdown wenn die Umwandlung 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
Ich kann aus Basis hier, aber ich denke, Sie versuchen zu kontrollieren latex. Sie möchten die Arbeit mit float-Platzierung gesehen hier.
Sie mischen knitr die Codierung für Rnw und Rmd-syntax?
Ich habe schon einen Blick auf die wiki-Seite, und haben versucht zu Folgen code. Aber noch nicht platzieren plot, wo ich es will. Post aktualisiert mit dem code, den ich versucht habe
Kennst du latex? Wenn ja machen und Rnw-Datei und die Verwendung von latex-Codierung. Wenn Sie wirklich wollen, zu verwenden, Rmd und dann konvertieren Sie, wie Sie tun, können Sie nicht fügen Sie ein Bild in dieser Art und Weise (nach meinem wissen). Sie müssen legen Sie eine html-Möglichkeit (vielleicht mit
Ich habe versucht, die html-Ansatz ![](Pfad/zum/Bild) mit meinem richtigen Dokument und das Verhalten der Platzierung der Figuren ist ähnlich. Also, zahlen werden nicht gedruckt, wo ich gesagt habe ausdrucken lassen (oft sind Sie weiter oben im Dokument).
Sie mischen knitr die Codierung für Rnw und Rmd-syntax?
Ich habe schon einen Blick auf die wiki-Seite, und haben versucht zu Folgen code. Aber noch nicht platzieren plot, wo ich es will. Post aktualisiert mit dem code, den ich versucht habe
Kennst du latex? Wenn ja machen und Rnw-Datei und die Verwendung von latex-Codierung. Wenn Sie wirklich wollen, zu verwenden, Rmd und dann konvertieren Sie, wie Sie tun, können Sie nicht fügen Sie ein Bild in dieser Art und Weise (nach meinem wissen). Sie müssen legen Sie eine html-Möglichkeit (vielleicht mit
![](path/to/image)
. Sie können Beschriftungen in html als auch. Auch können Sie nur wollen, verwenden Sie [html <img>
](w3schools.com/tags/tag_img.asp) - tags um das Bild zu platzieren.Ich habe versucht, die html-Ansatz ![](Pfad/zum/Bild) mit meinem richtigen Dokument und das Verhalten der Platzierung der Figuren ist ähnlich. Also, zahlen werden nicht gedruckt, wo ich gesagt habe ausdrucken lassen (oft sind Sie weiter oben im Dokument).
InformationsquelleAutor 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 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'):
nur entfernt vignette-Referenzen - vielen Dank!
BESTE LÖSUNG auf jeden Fall. Danke!!!
Perfekte Lösung. war auf der Suche für eine Weile
Ich Stimme vollkommen zu, dass diese Antwort ist eleganter als meine (geschrieben vor fünf Jahren), und ich möchte ermutigen, die OP, dies zu akzeptieren, anstatt.
InformationsquelleAutor paleo13
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 Ferran VilBer
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.
![SourceTree commit message](images/sourcetree-commit-message.png)\
InformationsquelleAutor Greg Snow
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)
Dies ist der erste Vorschlag, der für mich gearbeitet hat! Dies funktioniert auch für Bilder von eine Datei im markdown-text außerhalb ist ein Block. Vielen Dank!
InformationsquelleAutor 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 Martin Schmelzer
Ist dies, was Sie nach:
haben Sie sah knitr Dokumentation?
out.height='380px'
Bitte verbringen einige Zeit mit der Dokumentation. Yihui hat verbrachte viel Zeit damit, tolle Dokumentation und minimale Beispiele.Nachdem er mehr Zeit mit dieser, ich begreife das problem tritt auf, wenn die .md-Datei (die ausgegeben wird knitr) Umgerechnet .pdf-Datei (die von Pandoc). Hinzufügen eines backslash, um den html-code in den .md-Datei steuert die Abbildung Platzierung, wie diese: ` ![plot von chunk Unbenannt-chunk-1](Abbildung/Unbenannt-chunk-1.png)\ ` Allerdings, dies führt zu einem neuen problem: die Bildunterschrift ist verloren. Das problem geht weiter...!
InformationsquelleAutor 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 genau, wo 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.
Du hast Recht, sorry. Es funktioniert nicht. Ich weiß nicht, warum ich dachte, es Tat.
InformationsquelleAutor Andrew