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.
-
Man installiere, wenn noch nicht geschehen, die Pakete
utils
und für die „schönere“ Darstellung von Tabellenxtable
. -
Man installiere eine TeX-Distribution (z. B. MiKTeX [1], TeXLive [2]).
-
Man installiere einen LaTeX Editor (z.B. Texmaker [3]).
-
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.
-
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} -
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].
Um R-Code innerhalb von normalen LaTeX-Text zuschreiben, benutzt man
\Sexpr{}
.-
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. -
In der R Konsole setzt man nun mit
setwd()
den Pfad zur Datei Beispiel_R.rnw und ruft die FunktionSweave()
auf.setwd("...")
Sweave("Beispiel_R.rnw") -
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) Wenn man
Beispiel:xtable
benutzen möchte darf man davorrequire()
nicht vergessen.<<results=tex>>=
require(xtable)
x<-1:5
y<-8:4
xtable(table(x,y))
xtable(summary(lm(x~y)))
@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.
Die beamer-Klasse
Mit der beamer-Klasse kann man Präsentationen mit integriertem R-Code erstellen.
-
Man erstelle mit dem LaTeX Editor ein neues Dokument. Die Datei sollte ungef hr 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} -
Nun kommen die Schritte 8. bis 10. aus der obigen Anleitung R und LaTeX.
Fertige Präsentation:
- Genaueres zur beamer-Klasse findet man u. a. unter [5], [6] und [7].
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].
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}
In der R Konsole setzt man nun mit
setwd()
den Pfad zur Datei Beispiel.rnw und ruft die FunktionSweave()
auf:setwd("...")
Sweave("Beispiel.rnw")-
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 Umgebungtikzpicture
der Code, der die Grafik erzeugt. 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].
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)