2012-01-18 8 views
6

Czasami mogę zrobić fragment kodu R (w Sweave), który jest dłuższy niż marginesy strony. Czy istnieje sposób, aby zmusić go do "przejścia do następnej linii", gdy tak się stanie?Pobieranie fragmentów kodu Sweave, aby pozostać w marginesie strony?

Oto prosty przykład tego happeningu:

\documentclass[a4paper]{article} 

\usepackage{Sweave} 

\DefineVerbatimEnvironment{Sinput}{Verbatim} {xleftmargin=2em, 
               frame=single} 
\DefineVerbatimEnvironment{Soutput}{Verbatim}{xleftmargin=2em, 
               frame=single} 
\title{Sweave with boxes} 

\begin{document} 
\maketitle 

<<echo=FALSE>>= 
options(width=60) 
@ 

Here is an example of a code chunk followed by an output chunk, 
both enclosed in boxes. 

<<>>= 
print(rnorm(99)) 
@ 


<<>>= 
print("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa") 
@ 


\end{document} 
+0

Myślę, że "knitr" powinien rozwiązać ... Nie jestem absolutnie pewien, ale spróbuj. Teraz jest na CRAN. – aL3xa

+0

Cześć alexa - Miałem przeczucie, że mogę, i mam nadzieję, że uniknę go w tym momencie ... –

+1

W podobnych przypadkach używam list pakietów i \ lstset {breaklines = true} –

Odpowiedz

5

Jest to trudne i skrajny przypadek, bo nie ma spacji między tymi a „s, więc LaTeX nie może być w stanie owinąć słowa . Jeśli masz spacje, knitr będzie w stanie wytworzyć wynik z długimi liniami owiniętymi tidy=TRUE, highlight=TRUE (tak będzie Sweave, myślę, jeśli ustawisz keep.source=FALSE).

Powiązane problemy