2016-01-18 13 views
9

Tôi đang sử dụng knitr với LaTeX và dường như có rất nhiều không gian giữa các lệnh lặp lại bởi một đoạn mã và sự bắt đầu của kết quả:Giảm không gian giữa các lệnh và đầu ra trong khối knitr

enter image description here

mã LaTeX cho điều này trông giống như:

\begin{knitrout}\scriptsize 
    \definecolor{shadecolor}{rgb}{1, 1, 1}\color{fgcolor}\begin{kframe} 
    \begin{alltt} 
    \hlstd{> }\hlstd{lda_test_pred} \hlkwb{<-} \hlkwd{predict}\hlstd{(lda_fit,} \hlkwc{newdata} \hlstd{= seg_test)} 
    \hlstd{> }\hlkwd{library}\hlstd{(pROC)} 
    \hlstd{> } 
    \hlstd{> }\hlstd{lda_roc} \hlkwb{<-} \hlkwd{roc}\hlstd{(}\hlkwc{response} \hlstd{= seg_test}\hlopt{$}\hlstd{Class,} 
    \hlstd{+ }    \hlkwc{predictor} \hlstd{= lda_test_pred}\hlopt{$}\hlstd{posterior[,} \hlstr{"PS"}\hlstd{],} 
    \hlstd{+ }    \hlcom{## we need to tell the function that the _first_ level} 
    \hlstd{+ }    \hlcom{## is our event of interest} 
    \hlstd{+ }    \hlkwc{levels} \hlstd{=} \hlkwd{rev}\hlstd{(}\hlkwd{levels}\hlstd{(seg_test}\hlopt{$}\hlstd{Class)))} 
    \hlstd{> }\hlstd{lda_roc} 
    \end{alltt} 
    \begin{verbatim} 

    Call: 
    roc.default(response = seg_test$Class, predictor = lda_test_pred$posterior[,  "PS"], levels = rev(levels(seg_test$Class))) 

    Data: lda_test_pred$posterior[, "PS"] in 346 controls (seg_test$Class WS) < 664 cases (seg_test$Class PS). 
    Area under the curve: 0.874 
    \end{verbatim} 
    \begin{alltt} 
    \hlstd{> }\hlcom{# plot(exRoc print.thres = .5)} 
    \end{alltt} 
    \end{kframe} 
    \end{knitrout} 

Không gian được tạo ra giữa cuối alltt và bắt đầu verbatim. Một phần của khoảng trống, cho ví dụ này, là dòng trống trước đầu ra cuộc gọi.

Bất kỳ ý tưởng nào về cách điều chỉnh điều này trong knitr (không ảnh hưởng đến bất kỳ khoảng cách giữa các đoạn, v.v.)?

+0

Có thể hữu ích: http://tex.stackexchange.com/questions/43331/control-vertical-space-before-and-after-verbatim-environment –

+0

Cụ thể hơn hãy thử các dòng: '\ usepackage {etoolbox} \ makeatletter \ preto {\ @ verbatim} {\ topsep = 0pt \ partopsep = 0pt} \ makeatother' –

+0

Điều đó đã làm như vậy hãy thêm nó làm câu trả lời để tôi có thể bỏ phiếu cho nó. Cảm ơn – topepo

Trả lời

8

Thực hiện theo những lời khuyên tìm thấy ở đây

control vertical space before and after verbatim environment?

và thêm dòng sau vào tài liệu của bạn:

\usepackage{etoolbox} 
\makeatletter 
\preto{\@verbatim}{\topsep=0pt \partopsep=0pt } 
\makeatother 

Đối với một số chi tiết hơn bạn có thể kiểm tra answer này.

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