2011-06-18 4 views
6

Jednym ze sposobów, aby uzyskać sweave aby wyśrodkować dane jest to coś w rodzaju poniższejjak dostać sweave centrum figury bez centrowania kod

\begin{figure} 
\begin{center} 
[sweave chunk] 
\end{center} 
\end{figure} 

Jednakże, jeśli chcesz wyświetlić kod do produkcji wizualizacji, kod wychodzi na środek. Czy ktokolwiek wie, w jaki sposób można uzyskać kod, który będzie wyświetlany z wyrównaniem do lewej strony, jednocześnie upewniając się, że figura jest wyśrodkowana? Jest to problematyczne, jeśli ustawisz wielkość rysunku powiedzieć 3x3:

<<myplot, fig=TRUE, width=3, height=3>>= 
    plot(rnorm(20), rnorm(20))   
@ 

muszę zrobić to ponad 100 razy dla projektu pracuję nad i woleliby, aby nie tworzyć oddzielne kawałki na działce i kod.

+0

I pozostanie w uzasadniony tekst domyślnie. –

+0

Być może używasz pgfSweave, to był problem z wcześniejszymi wersjami. –

Odpowiedz

6

Może nie dokładnie to, czego po, ale chciałbym zachować kod używam, aby obraz poza regionem figury, jak chcę kod w tekście:

Blablabla if we run: 
R CODE 
We get the figure in Figure 1 

możesz zrobić to za pomocą include=false w argumentach Sweave i przy użyciu faktu, że jeśli zrobisz zdjęcie w Sweave nazywa się to pdf DOCUMENTNAME-PICTURENAME.pdf. Na przykład w dokumencie foo.Rnw:

Blablabla if we run: 
<<myplot,fig=true,include=false>>= 
plot(1) 
@ 
We get the plot in Figure \ref{myplot} 

\begin{figure} 
\begin{center} 
\includegraphics{foo-myplot} 
\end{center} 
\label{myplot} 
\caption{This is my plot!} 
\end{figure} 

ten powinien dostać kod lewo uzasadnione w tekście biegania i rysunku gdziekolwiek miejsca LaTeX to (jeśli chcesz tam).


Edit:

Prowadzenie przykład nie zrozumcie mnie opuścił uzasadnionego kod w tym samym marży jako zwykły tekst choć:

\documentclass{article} 
\usepackage{Sweave} 
\begin{document} 
\begin{figure} 
\centering 
<<myplot, fig=TRUE, width=3, height=3>>= 
    plot(rnorm(20), rnorm(20))   
@ 
\end{figure} 
\end{document} 
+0

'include = false' jest ładne; daje większą elastyczność. – Aaron

+0

Boczny punkt: upewnij się, że '\ label' jest po' \ caption'; inaczej etykieta będzie zawierała niewłaściwą rzecz. – Aaron

+0

W rzeczywistości można użyć fragmentu kodu zawierającego '<>' w obrębie definicji twojej figury. Myślę, że może być bardziej niezawodny –

Powiązane problemy