2014-12-21 5 views
11

line numbersknitr과 함께 사용하는 함수가 있는지 궁금합니다. .Rnw입니다. this discussion 및이 문서 (herehere)를 찾았지만 줄 번호를 입력하는 방법을 찾지 못했습니다. 어떤 도움을 주시면 감사하겠습니다. 감사합니다knitr을 사용한 R 코드의 행 번호 입력

+0

larify, PDF 출력에 줄 번호가 필요하십니까? 또는 .Rnw 파일에서? – CephBirk

+0

예, PDF 출력에 줄 번호가 필요합니다. – MYaseen208

+0

그리고 문서의 모든 줄마다 또는 청크 출력의 줄 번호 만 표시 할 수 있을까요? – CephBirk

답변

10

이 솔루션은 LaTeX 목록 패키지를 사용하여 줄 번호를 만듭니다. 나는 모든 코드 덩어리에 누적하여 작업하도록 만 할 수 있지만, 각 덩이 내에서만 행을 열거하는 유사한 솔루션이 있다고 상상한다. 이것의

\documentclass{article} 
\usepackage{listings} 
\begin{document} 

<<setup, echo=FALSE>>= 
knit_hooks$set(source = function(x, options) { 
    paste("\\begin{lstlisting}[numbers=left, firstnumber=last]\n", x, 
     "\\end{lstlisting}\n", sep = "") 
}) 
@ 

<<a, results='hold'>>= 
1:2 
3:4 
5:6 
@ 

<<b>>= 
"test1" 
"test2" 
"test3" 
@ 

\end{document} 

핵심 부품 which is basically copied from here, 소스 후크에있는 다음은 .Rnw 소스입니다. firstnumber=last은 목록 전체에 줄 번호를 누적하도록 목록에 지시합니다. 그것 없이는, knitr가 그것의 자신의 명부 작성에있는 각 부호 선을두고 있기 때문에 모든 선에는 1가 열거된다. 다음

knit_hooks$set(reset = function(before, options, envir){ 
if(before){ 
    return("\\setcounter{lstnumber}{1}") 
} 
}) 

과에 reset=TRUE를 사용 : 각 코드 블록 1에서 번호 매기기 시작하려면 카운터를 재설정 후크를 추가

enter image description here

:

그리고 여기가 결과입니다 원하는 각 청크에서 후크를 활성화하십시오.

<<a, results='hold', reset=TRUE>>= 
1:2 
3:4 
@ 
+0

(+1) : 이것은 훌륭한 @ 토마스입니다. 라인 번호가 각 R 청크 내에서 바뀌면 좋을 것입니다. – MYaseen208

+0

@ 스페이스 맨 편집을 주셔서 감사합니다. – Thomas

+0

이 작동합니다. 하지만 원래 '니트로'처럼 코드 (글꼴) 색상을 얻지 못하고 있습니다. 그것을위한 어떤 해결책. – MYaseen208