R und LaTeX

Man kann LaTeX und R kombinieren mit Hilfe der R-Funktion Sweave() aus dem Paket utils von Friedrich Leisch und so LaTeX-Dokumente mit R-Code erzeugen.

  1. Man installiere, wenn noch nicht geschehen, die Pakete utils und für die „schönere“ Darstellung von Tabellen xtable.

  2. Man installiere eine TeX-Distribution (z. B. MiKTeX [1], TeXLive [2]).

  3. Man installiere einen LaTeX Editor (z.B. Texmaker [3]).

  4. Man suche im Verzeichnis .../R-x.x.x/share/texmf die Datei Sweave.sty und kopiere sie in das TeX-Unterverzeichnis „texmf“ (danach muss man die Index-Datei aktulaisieren). Oder kopiere die Datei Sweave.sty in den Ordner in dem man die LaTeX-Dokumente erstellen möchte.

  5. Man erstelle mit dem LaTeX Editor ein neues Dokument. Die Datei sollte ungefähr wie folgt aussehen.

    Beispiel.tex
    \documentclass[10pt,a4paper]{article}

    % Umlaute und neue deutsche Rechtschreibung
    \usepackage[ngerman]{babel}
    % Kodierung (meistens utf8: OS X, Linux; latin1: Windows)
    \usepackage[utf8]{inputenc}
    % mathematische Symbole und Umgebungen
    \usepackage{amsmath,amsfonts,amssymb}
    % Sweave.sty angeben, gegebenfalls mit Pfad
    \usepackage{Sweave}

    \begin{document}

    \title{Beispiel}
    \date{}
    \maketitle

    <<>>=
    x<-1:10
    x
    @

    \end{document}
  6. Vor den R-Code kommt <<Optionen>>= und dahinter ein @. Zwischen diesen Marken darf nur R-Code stehen. Man kann folgende Optionen durch Kommata getrennt angeben, man kann sie aber auch weglassen.

    echo=false   R-Code ist nicht sichtbar
    results=tex   die Ergebnisse werden wie TeX-Code behandelt
    results=hide   die Ergebnisse sind nicht sichtbar
    fig=true   Grafiken werden eingebunden
    width=   Breite der Grafik in Inch (z. B. 4)
    height=   Höhe der Grafik in Inch

    Weitere Optionen kann man in der R-Hilfe nachlesen [4].

  7. Um R-Code innerhalb von normalen LaTeX-Text zuschreiben, benutzt man \Sexpr{}.

  8. Nun kopiert man die Datei Beispiel.tex und benennt sie in Beispiel_R.rnw (Dateiendung .rnw oder .snw) um. Das Kopieren verhindert ein Überschreiben der .tex-Datei, da Sweave() eine .tex-Datei mit dem gleichen Namen erstellt.

  9. In der R Konsole setzt man nun mit setwd() den Pfad zur Datei Beispiel_R.rnw und ruft die Funktion Sweave() auf.

    setwd("...")
    Sweave("Beispiel_R.rnw")
  10. Wenn alles klappt, kann man in der Konsole den Satz „Sie können nun LaTeX auf 'Beispiel_R.tex' ausführen“ lesen. Nun öffnet man die Datei Beispiel_R.tex mit dem LaTeX Editor und kompiliert diese.
    (Texmaker: Werkzeuge->PDFLaTeX und dann Werkzeuge->PDF ansehen; unter Optionen->Texmaker konfigurieren->Kommandos kann man gegebenfalls die Pfade von PDF/Dvi/PS Betrachter und LaTeX setzen)

  11. Wenn man xtable benutzen möchte darf man davor require() nicht vergessen.

    Beispiel:
    <<results=tex>>=
    require(xtable)
    x<-1:5
    y<-8:4
    xtable(table(x,y))
    xtable(summary(lm(x~y)))
    @
  12. Der R-Code sollte möglichst richtig sein, da die Fehlermeldungen nicht die Fehlerstelle angeben. Im R-Code sollten keine Lücken sein und jeder Befehl sollte in einer neuen Zeile beginnen.


zurück


Die beamer-Klasse

Mit der beamer-Klasse kann man Präsentationen mit integriertem R-Code erstellen.

  1. Man erstelle mit dem LaTeX Editor ein neues Dokument. Die Datei sollte ungefhr wie folgt aussehen.

    Beispiel.tex
    \documentclass[trans]{beamer}

    \usepackage[ngerman]{babel}
    \usepackage[utf8]{inputenc}
    \usepackage{amsmath,amsfonts,amssymb}
    \usepackage{Sweave}

    \begin{document}

    \title[KurzTitel]{Titel der Präsentation}
    \subtitle[KurzUntertitel]{Untertitel}
    \author[KurzAuthor]{Author}
    \date{Datum}

    \begin{frame}
    \titlepage
    \end{frame}

    \section{R und Sweave}
    \begin{frame}[fragile]
    \frametitle{R und Sweave}
    Text...
    <<>>=
    x<-1:4
    x+5
    @
    \end{frame}

    \end{document}
  2. Nun kommen die Schritte 8. bis 10. aus der obigen Anleitung R und LaTeX.

  3. Fertige Präsentation:

    Abb. 1: Titelseite der Präsentation

    Abb. 2: Seite der Präsentation mit R-Code

  4. Genaueres zur beamer-Klasse findet man u. a. unter [5], [6] und [7].

zurück


Sweave: Grafiken mit tikzDevice, TikZ und PGF

Mit TikZ und PGF von Till Tantau kann man Vektorgrafiken mittels LaTex/TeX erzeugen (TikZ = TikZ ist kein Zeichenprogramm, PGF = Portable Graphics Format), [8], [9]. Mit dem Paket tikzDevice von Cameron Bracken und Charlie Sharpsteen kann man mit R Grafiken mit TikZ/PGF-Befehlen erzeugen [10].

Beispiel:
  1. Man erstelle mit dem LaTeX Editor ein neues Dokument, z.B. das folgende:

    Beispiel.rnw
    \documentclass[10pt,a4paper]{article}

    % Umlaute und neue deutsche Rechtschreibung
    \usepackage[ngerman]{babel}
    % Kodierung (utf8: OS X, Linux; latin1: Windows)
    \usepackage[utf8]{inputenc}
    % Sweave.sty angeben, gegebenfalls mit Pfad
    \usepackage{Sweave}
    % TikZ/PGF
    \usepackage{tikz}

    \begin{document}

    <<echo=false, results=tex>>=
    require(tikzDevice)
    tikz(console=TRUE, width=5, height=5)
    x<-rnorm(100)
    plot(x)
    tmp<-dev.off()
    @

    \end{document}
  2. In der R Konsole setzt man nun mit setwd() den Pfad zur Datei Beispiel.rnw und ruft die Funktion Sweave() auf:

    setwd("...")
    Sweave("Beispiel.rnw")
  3. Wenn alles klappt, kann man in der Konsole den Satz „Sie können nun LaTeX auf 'Beispiel.tex' ausführen“ lesen. Nun öffnet man die Datei Beispiel.tex mit dem LaTeX Editor und kompiliert diese.
    In der tex-Datei steht in der Umgebung tikzpicture der Code, der die Grafik erzeugt.

  4. In der Grafik wird die gleiche Schriftart wie im restlichen Dokument verwendet. Um z.B. Farben oder Achsenbeschriftungen zu ändern, braucht man R jetzt nicht mehr. Man kann direkt den tex-Code ändern (z.B.: bei \definecolor kann man die Farbeinstellung (RGB) verändern), siehe dazu die sehr umfangreiche Dokumentation von TikZ/PGF [9].


zurück


Quellen:
[1] MikTeX, Download
http://miktex.org
Zugriff: 29.6.2009
[2] TeXLive, Download
http://www.tug.org/texlive/
Zugriff: 29.6.2009
[3] Texmaker, LaTeX Editor, Download
http://www.xm1math.net/texmaker/download.html
Zugriff: 20.6.2009
[4] R Documentation, R/LaTeX Driver for Sweave, Friedrich Leisch, Optionen
R: help(RweaveLatex) bzw. ?RweaveLatex
Zugriff: 14.6.2009
[5] Kleine Einführung zur Beamer-Klasse, Michael Schulz
http://www2.informatik.hu-berlin.de/~mischulz/beamer.html
Zugriff: 29.6.2009
[6] LaTeX Beamer FAQ, Elke Wilkeit
http://www.informatik.uni-oldenburg.de/~sos/latex/beamerFAQ.html
Zugriff: 29.6.2009
[7] LaTeX Beamer Kurs, Hans-Georg Menz
http://www.physik.uni-freiburg.de/~tooleh/latex_beamerkurs.pdf
Zugriff: 29.6.2009
[8] Viele Beispiele zu TikZ und PGF
http://www.texample.net/tikz/
Zugriff: 29.7.2011
[9] Dokumentation zu TikZ und PGF
http://mirrors.ctan.org/graphics/pgf/base/doc/generic/pgf/pgfmanual.pdf
Zugriff: 29.7.2011
[10] tikzDevice
http://cran.r-project.org/web/packages/tikzDevice/index.html
Zugriff: 29.7.2011

29.7.2011 (R: 2.9.0, 2.12.1)