Anzeige:
Ergebnis 1 bis 10 von 10

Thema: LaTeX + R mit Sweave

  1. #1
    Registrierter Benutzer
    Registriert seit
    22.10.2012
    Beiträge
    48

    LaTeX + R mit Sweave

    Hallo,

    ich bin dabei meine Diplomarbeit zu schreiben und nutze dafür LaTeX und R. Nun musste ich mich heute wiederholt darüber ärgern, dass es soviel Zeit kostet, die mittels R erzeugten Grafiken in LaTeX einzubinden, da ich immer noch mit Grafikprogrammen das feintuning machen muss (Hauptsächlich wegen sich ändernden Schriftgrößen und Skalierung beim einbinden in LaTeX).

    Nun habe ich Sweave "entdeckt" und ein bisschen was über knitr gelesen. Das hört sich auch alles recht gut an, aber mir ist einfach nicht klar wie ich einen anständigen workaround in dieser Kombination hinbekomme der über die Standardbeispiele von 2+2 und plot(x) hinausgeht.

    Da ich mitten in meiner Arbeit stecke scheue ich mich davor mich da jetzt richtig einzuarbeiten um dann festzustellen, dass es nicht gewünscht funktioniert.

    Vielleicht kann mir hier ja jemand ein paar Tips geben.

    Zur Problemstellung:
    • Mein LaTeX Dokument besteht aus einem Hauptdokument und jeweils einem .tex Dokument für jedes Kapitel (über \include{Kapitel} eingebunden).

    • In die einzelnen Kapitel möchte ich gerne Grafiken aus R einbinden (bisher über R > postscript() > Inkscape > pdf > LaTeX )

    • Die für R genutzten Skripte sind teilweise recht umfangreich

    • Ich nutzer RStudio und Texmaker unter Ubuntu 12.04


    Ich suche einen Weg wie ich die R-Skripte in LaTeX innerhalb unterschiedlicher Kapitel einbinden kann um mir daraus Grafiken zu erzeugen und über das Hauptdokument kompilieren lassen kann
    Ich würde das ganze gerne über Texmaker kompilieren (ist aber nicht zwingend).

    Gibt es dazu eine Möglichkeit, oder lieber gleich die Finger davon lassen?

    Beste Grüße
    Makana

  2. #2
    Registrierter Benutzer Avatar von bobmalaria
    Registriert seit
    28.11.2006
    Ort
    Düsseldorf
    Beiträge
    4.174
    hi,

    ich würde es an deiner stelle vorziehen plots mit tikzDevice (R paket) zu exportieren. dann hast du tex-code und kannst diesen per \input einbinden und der graph erscheint.

    ich plotte meist ganz normale x,y plots und dafür exportiere ich aus R lieber ein datenfile das ich dann in latex mit dem pgfplots-paket plotte.

    sollte ich in R estwas komplizierteres machen wie z.b. ein contour plot, dann erstelle ich ein png ohne achsen und beschriftung in der richtigen größe und binde es auch wieder mit dem pgfplots paket ein und füge dort die beschrifting ein. so habe ich immer die richtige schriftart und größe im dokument.

    dadurch hat man natürlich keine direkte R-LateX interaktion, aber meistens braucht man das ja auch nicht wirklich, oder?

    gruss
    Mein Ball ist umgefallen

  3. #3
    Registrierter Benutzer Avatar von Donalduck
    Registriert seit
    08.05.2007
    Ort
    Augsburg
    Beiträge
    754
    Der Schritt mit dem konvertieren in Inkscape lässt sich mit einer Batch datei auch nett automatisieren:
    Code:
    inkscape.com %1 -z -D --export-pdf="%~n1.pdf" --export-latex
    Einfach eine Batch datei damit machen, dann kannst du ein Bild draufziehen und es wird konvertiert.

  4. #4
    Registrierter Benutzer
    Registriert seit
    22.10.2012
    Beiträge
    48
    Danke für die schnelle Antwort,
    ich werde mich morgen mal mit den pgfplot beschäftigen. Ich hatte schon versucht das tikzDevice Paket zu laden aber dieses schein für R 2.14.1 nicht verfügbar zu sein.

    Mit dem brauchen oder nicht ist es eben so eine Sache es wäre halt schön bequem, einfach einen Verweis auf ein bestehendes Skrip zu geben und die entsprechende Ausgabe direkt im Dokument zu haben.

    Beste Grüße
    Makana

  5. #5
    Registrierter Benutzer
    Registriert seit
    22.10.2012
    Beiträge
    48
    Hallo Donalduck,

    was bewirkt denn die Batch-Datei? Das Hauptproblem ist ja die Schriftgröße und die Stelle an der der skalierte Text eingefügt wird. Aus R kann man sich auch direkt ein pdf ausgeben lassen aber hat dann unter umständen das Problem mit dem Format.

    Beste Grüße
    Makana

  6. #6
    Registrierter Benutzer Avatar von Donalduck
    Registriert seit
    08.05.2007
    Ort
    Augsburg
    Beiträge
    754
    Das sorgt dafür dass (zumindest bei den svg Dateien die ich benutz) die Bilder als pdf exportiert werden und der Text der darauf liegt als LaTeX Code exportiert wird. Der LaTeX Code wird automatisch beim einbinden der "pdf_tex" Datei in deinem Dokument über das Bild gelegt. genaueres steht in der "pdf_tex" Datei. Das heisst, dass du den Vorteil hast es nicht selber zusammenbasteln zu müssen alles, aber du kannst in deinen Beschriftungen LaTeX-Code benutzen und er wird übersetzt und die Schriftarten stimmen auch.
    Siehe auch hier,
    Geändert von Donalduck (22-10-2012 um 23:02 Uhr)

  7. #7
    Registrierter Benutzer
    Registriert seit
    22.10.2012
    Beiträge
    48
    @ Donalduck

    Ich weiß leider überhaupt nicht wie und wo ich diese batch Datei ausführen kann und muss.

    Der Vollständigkeit halber hier noch der Weg wie man die tikzDevice für R installiert bekommt.

    Code:
    install.packages("tikzDevice", repos="http://R-Forge.R-project.org")

  8. #8
    Registrierter Benutzer Avatar von bobmalaria
    Registriert seit
    28.11.2006
    Ort
    Düsseldorf
    Beiträge
    4.174
    hi,

    meinen dafuerhalten nach bringt das batch skript in diesem fall nichts.

    es ist richtig, dass inkscape ein pdf-bild und text in latex-code getrennt voneinander exportieren kann. so hat man dann die textschriftart im latex dokument.

    dies funktioniert aber nicht wenn man ein pdfbild in inkscape laed das bereits text enthaelt, oder? ich glaube nicht.

    das ziel ist es ja immer das man im dokument die achsenbeschriftung inkl. zahlen in der textschriftart darstellt. so sieht dann das dokument mehr wie "aus einem guss" aus. dafuer eigent sich meiner meinung nach am besten das direkte plotten mit pgfplots aus datenfiles, der export aus R als bild mit dem anschliessenden einbinden via pgfplots oder eben dem export aus R mit tikzdevice.

    pgfplots und tikzdevice wuerde ich allerdings nicht mischen da es zu leichtu unterschiedlichen ergebnissen kommen kann

    gruss
    Mein Ball ist umgefallen

  9. #9
    Registrierter Benutzer Avatar von Donalduck
    Registriert seit
    08.05.2007
    Ort
    Augsburg
    Beiträge
    754
    Wie gesagt, ich hab das nur benutzt um svg Dateien zu konvertieren, aber bei denen funktioniert es wunderbar wenn die den Text bereits enthalten. Natürlich nur wenn das noch Text ist, und nicht in Pfade konvertiert wurde.

  10. #10
    Registrierter Benutzer Avatar von bobmalaria
    Registriert seit
    28.11.2006
    Ort
    Düsseldorf
    Beiträge
    4.174
    @donald,

    ja so benutze ich inkcape auch. wie ich es verstanden habe, verwendet der OP inkscape aber nur um sein ps/eps bild in ein pdf zu verwandeln.

    man kann in inkscape zwar beim eps import Text handling: Import text as text anwaehlen, aber das ist wohl noch ein feature mit bugs.

    sollte das stabil laufen, dann ist der weg eps->inkscape import mit text->pdf+latex export aus inkscape allerdings eine moeglichkeit
    Mein Ball ist umgefallen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •