Alternative zu knitr / echte R-in-tex-integration
Alternative zu knitr / echte R-in-tex-integration
Ich suche eine Alternative zu knitr, welche auch ein entsprechend entgegengesetzes Nutzungsprinzip verfolgt.
knitr ist entworfen, dass das Primärdokument ein Rnw-file ist und daraus tex-files generiert werden. Das ist (wie man bei support-Anfragen sieht) oft nicht gewünscht. Es gibt auch workarounds dafür, aber keine echten Lösungen.
Nun bin ich auf der Suche nach einer Möglichkeit R in tex zu integrieren, ohne dabei mein gewohntes tex-file aufgeben zu müssen. R sollte eine sub-Kombonente sein und sich meinem tex-environment "unterordnen" und nicht wie bei knitr dem tex-environment überstülpen.
Existiert so etwas?
knitr ist entworfen, dass das Primärdokument ein Rnw-file ist und daraus tex-files generiert werden. Das ist (wie man bei support-Anfragen sieht) oft nicht gewünscht. Es gibt auch workarounds dafür, aber keine echten Lösungen.
Nun bin ich auf der Suche nach einer Möglichkeit R in tex zu integrieren, ohne dabei mein gewohntes tex-file aufgeben zu müssen. R sollte eine sub-Kombonente sein und sich meinem tex-environment "unterordnen" und nicht wie bei knitr dem tex-environment überstülpen.
Existiert so etwas?
XeLaTeX, TeX Live, vim-latexsuite
- Johannes_B
- Moderator
- Beiträge: 5079
- Registriert: Do 1. Nov 2012, 14:55
- Kontaktdaten:
TeXwelt - Fragen und Antworten Schaut vorbei und stellt Fragen.
LaTeX-Vorlagen?
Der Weg zum Ziel: Ruhe bewahren und durchatmen, Beiträge und unterstützende Links aufmerksam lesen, Lösungsansätze verstehen und ggf. nachfragen.
LaTeX-Vorlagen?
Der Weg zum Ziel: Ruhe bewahren und durchatmen, Beiträge und unterstützende Links aufmerksam lesen, Lösungsansätze verstehen und ggf. nachfragen.
Je nachdem wofür Du R brauchst, reicht vielleicht auch nur das R-Paket tikzDevice (Beispiel bei TeXample.net), damit kannst Du Graphiken aus R in TikZ exportieren und die Ergebnisse haben mir damals sehr gut gefallen (nur wenn die Graphiken zu viele Details haben, kann TeX schon an seine Kapazitätsgrenze kommen). Auch Tabellen kann man als TeX-Code exportieren bei Stackoverflow gibt es dazu eine Frage.
Sweave habe ich schon erfolgreich genutzt, aber das unterscheidet sich von KnitR eher in Detailfragen, als in der generellen Idee, wenn ich das richtig sehe. In beiden fällen hast Du ein .rnw- oder .Rtex-File, hast also nie wirklich "echtes" .tex. Ein bisschen Googlen sagt mir, dass man eher von Sweave nach KnitR umsteigt als umgekehrt.
Vielleicht wäre es für Dich eine Möglichkeit, Den Code mit \input auszulagern. Dann hast Du ein echtes .tex-Dokument und nur Dein \input muss von Sweave/KnitR verarbeitet werden, ich weiß aber nicht, ob das geht, oder ob irgendetwas an einer document-Umgebung hängt.
Möglicherweise - aber das ist eher eine irre Idee und ich habe keine Idee, ob das überhaupt funktionieren kann - kann man R-Support in pythontex einbauen, das kann nämlich nicht nur Python sondern auch Ruby, Julia und Octave.
Sweave habe ich schon erfolgreich genutzt, aber das unterscheidet sich von KnitR eher in Detailfragen, als in der generellen Idee, wenn ich das richtig sehe. In beiden fällen hast Du ein .rnw- oder .Rtex-File, hast also nie wirklich "echtes" .tex. Ein bisschen Googlen sagt mir, dass man eher von Sweave nach KnitR umsteigt als umgekehrt.
Vielleicht wäre es für Dich eine Möglichkeit, Den Code mit \input auszulagern. Dann hast Du ein echtes .tex-Dokument und nur Dein \input muss von Sweave/KnitR verarbeitet werden, ich weiß aber nicht, ob das geht, oder ob irgendetwas an einer document-Umgebung hängt.
Möglicherweise - aber das ist eher eine irre Idee und ich habe keine Idee, ob das überhaupt funktionieren kann - kann man R-Support in pythontex einbauen, das kann nämlich nicht nur Python sondern auch Ruby, Julia und Octave.
So war es bei mir auch. Sweave hat das gleiche (für mich unpassende) Design-Konzept wie knitr.Anonymous hat geschrieben:Ein bisschen Googlen sagt mir, dass man eher von Sweave nach KnitR umsteigt als umgekehrt.
Das wäre der oft beschriebenen Workaround. Du musst aber auch den preambel noch mit berücksichtigen usw.Anonymous hat geschrieben:Vielleicht wäre es für Dich eine Möglichkeit, Den Code mit \input auszulagern. Dann hast Du ein echtes .tex-Dokument und nur Dein \input muss von Sweave/KnitR verarbeitet werden, ich weiß aber nicht, ob das geht, oder ob irgendetwas an einer document-Umgebung hängt.
Das geht, ist aber ne Krücke.
Wichtig zu beachten bei evtl. Tests: knitr() überschreibt ungefragt, bereits vorhandene tex-files.
Wahrscheinlich wird es der Einfachheit halber bei dem knitr-Workaround bleiben.
XeLaTeX, TeX Live, vim-latexsuite
Wenn ich das auf github richtig sehe ist der Maintainer von tikzDevice der gleiche wie von knitr?Anonymous hat geschrieben:reicht vielleicht auch nur das R-Paket tikzDevice (Beispiel bei TeXample.net)
Ich finde keine offizielle Doku zu tikzDevice. Gibt es da irgendwo ein Handbuch.
Und es scheint veraltet. Lässt sich mit der aktuellsten R-Version nicht installieren.
> install.packages('tkizDevice') Installing package into ‘/home/user/R/i686-pc-linux-gnu-library/3.2’ (as ‘lib’ is unspecified) --- Bitte einen CRAN Spiegel für diese Sitzung auswählen --- Warnmeldung: package ‘tkizDevice’ is not available (for R version 3.2.2)
> install.packages("tikzDevice", repos="http://R-Forge.R-project.org") Installing package into ‘/home/user/R/i686-pc-linux-gnu-library/3.2’ (as ‘lib’ is unspecified) Warnung: dependency ‘filehash’ is not available versuche URL 'http://R-Forge.R-project.org/src/contrib/tikzDevice_0.6.3.tar.gz' Content type 'application/x-gzip' length 1733547 bytes (1.7 MB) ================================================== downloaded 1.7 MB ERROR: dependency ‘filehash’ is not available for package ‘tikzDevice’ * removing ‘/home/user/R/i686-pc-linux-gnu-library/3.2/tikzDevice’ Die heruntergeladenen Quellpakete sind in ‘/tmp/RtmpjRvDfX/downloaded_packages’ Warnmeldung: In install.packages("tikzDevice", repos = "http://R-Forge.R-project.org") : Installation des Pakets ‘tikzDevice’ hatte Exit-Status ungleich 0
XeLaTeX, TeX Live, vim-latexsuite
Ich hätte mir ja denken können, dass ich nicht der erste bin, der diese geniale Idee hat.MoonKid hat geschrieben:Das wäre der oft beschriebenen Workaround. Du musst aber auch den preambel noch mit berücksichtigen usw.
Das geht, ist aber ne Krücke.

Kann sein, bei CRAN stehen viele Mitautoren für beide Pakete und da sind auch Überschneidungen dabei, aber der Maintainer ist jeweils ein anderer. Wobei die github-Repositorys vom selben Nutzer sind.MoonKid hat geschrieben:Wenn ich das auf github richtig sehe ist der Maintainer von tikzDevice der gleiche wie von knitr?
Die Doku findest Du in dem ersten von mir erwähnten Link (https://cran.rstudio.com/web/packages/tikzDevice/index.html) oder direkt unter https://cran.rstudio.com/web/packages/tikzDevice/tikzDevice.pdf die Vignette ist https://cran.rstudio.com/web/packages/tikzDevice/vignettes/tikzDevice.pdf.MoonKid hat geschrieben:Ich finde keine offizielle Doku zu tikzDevice. Gibt es da irgendwo ein Handbuch.
Ich glaube eigentlich nicht, dass das Paket veraltet ist; die letzte Version ist von Januar 2015, also noch nicht so alt. Bei github scheint die Entwicklung auch fleißig voranzugehen. In R Version 3.1.2 habe ich das Paket ohne Probleme installiert bekommen. Es schient eher so, als hättest Du bei Deinem ersten Versuch einen Tippfehler drin gehabt (tkizDevice sollte tikzDevice sein) und beim manuellen Versuch fehlten Abhängigkeiten. (Hier bei Stackoverflow gib es immerhin jemanden, der das Paket mit R 3.2.2 zum Fliegen bekommen hat, gut dann derjenige andere Probleme, aber es schient installiert zu sein.)MoonKid hat geschrieben:Und es scheint veraltet. Lässt sich mit der aktuellsten R-Version nicht installieren.
Danke für den manual-Hinweis. Bei den vielen Reps und Maintainern kommt man durcheinander. Auch der Inhalt der PDFs verwirrt mich nur. Die Installations-Anweisung (in Part II) beziehen sich auf ein tex-environment und nicht auf R. Ich finde keine install.packages-Anweisung im gesamten Dokument.
Dein Hinweis mit dem Tipfehler bezieht sich aber nur auf die nicht-vertrauenswürdige Quelle.
Woher soll ich nun wissen, was offiziell suported wird?
oder
Dein Hinweis mit dem Tipfehler bezieht sich aber nur auf die nicht-vertrauenswürdige Quelle.
Woher soll ich nun wissen, was offiziell suported wird?
> install.packages('tkizDevice')
install.packages("tkizDevice", repos="http://R-Forge.R-project.org")
XeLaTeX, TeX Live, vim-latexsuite
Als "offizielle" Quelle würde ich bei R-Paketen ruhig CRAN ansehen, deswegen habe ich ja in meinem ersten Hinweis dahin verlinkt.
Und der Hinweis mit dem Tippfehler bezieht sich auf Deinen ersten Versuch, denn das Paket heißt tikzDevice, probier es doch erstmal mit
bei mir ging das wunderbar.
Und der Hinweis mit dem Tippfehler bezieht sich auf Deinen ersten Versuch, denn das Paket heißt tikzDevice, probier es doch erstmal mit
install.packages('tikzDevice')