2012-01-18 43 views
6

Thỉnh thoảng tôi tạo một đoạn mã R (trong Sweave) dài hơn sau đó là lề của trang. Có cách nào để buộc nó "đi đến dòng tiếp theo" một khi điều đó xảy ra?Lấy đoạn mã Sweave để ở bên trong lề trang?

Đây là một ví dụ đơn giản xảy ra rằng:

\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

Tôi nghĩ rằng 'knitr' nên giải quyết điều đó ... Tôi không hoàn toàn chắc chắn, nhưng hãy thử nó ra. Bây giờ là trên CRAN. – aL3xa

+0

Hi alexa - Tôi có cảm giác nó có thể, và tôi hy vọng sẽ tránh nó vào thời điểm này ... –

+1

Trong những trường hợp tương tự, tôi sử dụng danh sách gói và \ lstset {breaklines = true} –

Trả lời

5

Đây là một trường hợp khó khăn và khắc nghiệt, bởi vì bạn không có các khoảng trống giữa những a 's, vì vậy LaTeX có thể không thể quấn từ . Nếu bạn có không gian, knitr sẽ có thể sản xuất đầu ra với các đường dài được bọc bằng tidy=TRUE, highlight=TRUE (vì vậy sẽ Sweave, tôi nghĩ, nếu bạn đặt keep.source=FALSE).

Các vấn đề liên quan