2010-08-10 2 views
8

저는 LaTeX에 논문을 쓰고 있습니다. 제 취향에 다소 오래 걸렸기 때문에 여러 파일로 나눠 봤습니다. thesis.tex, intro.tex, mat_n_met.tex, rslts.texdiscsn.tex이라고합시다. 나는 intro.tex, mat_n_met.tex, rslts.texdiscsn.tex부터 thesis.tex까지 \include{intro} (등등)을 연결했습니다. r_crunching.Rnw이라는 별개의 파일 (데이터를 분석하여 R 스크립트를 실행하는 청크를 보유하는 Sweave를 실행 함)과 \includegraphics (예 : rslts.tex)을 통해 포함 된 그래프의 PDF 출력을 생성하는 청크도 생성했습니다. 아직도 따라?여러 파일 프로젝트를 어떻게 정리하나요?

내가 RNW을 실행하면 (즉, 내가 rslts.Rnw-rslts.tex 개명)이 R 스크립트로 덩어리에 "링크"없이, 당신은 \Sexpr{}의 기준이 존재하지 않는 말하는 Sweave() 오류가 발생합니다. 모든 파일을 단일 .Rnw로 병합하지 않고도 \Sexpr{} (rslts.Rnw) 전화 할 방법이 있습니까?

다른 방법은이를 수행하는 방법을 환영합니다.

+0

오프 주제에 RStudio 문서에 설명되어 있지만, 오프 기회에 도움이됩니다 : http://staff.acecrc.org.au/~mdsumner/TCallaghan/ 그 템플릿 include/includeonly 인프라를 사용하는 방법을 보여 주며 최소한 하나의 기관에 대한 모든 요소를 ​​갖추고 있습니다. 나는 그것을 직접 사용했고, chap1.tex 등을 Rnw에 상응하는 것으로 바꾸었고 Sweave를 pre-latex 프로세스에 추가했습니다. – mdsumner

+0

나는 당신의 질문을 어떻게 이해했는지에 대한 제목을 편집했다. 내가 잘못 이해하면 다시 편집 해주십시오. (나는 여전히 문제를 이해하지 못했고 대답이 어떻게 도움이되는지 이해하지 못했다.) –

+0

문제는 적어도 두 파일이 Sweave 파일이었고 하나의 결과가 다른 파일에서 볼 수 없다는 것이 문제였다. . 제 생각에 원래 제목은 비공식적이지만 더 간단하고 명확했습니다. 로마인은 여전히 ​​여기에서 활발히 활동하고 있습니다. 그러니 어쩌면 그가 뛰어 들게 될 것입니다. 그러나 그 동안 나는 그것을 어떻게 시작했는지에 더 가깝게 되돌릴 것입니다. Paŭlo,이게 무례하지 않기를 바래요. 왜 이해가 안되나요? – Aaron

답변

4

당신이 Sweave를 다루고 있으며 라텍스 문제를 생각하면 잠시 잊어 버려야합니다. - 그 중 \include\includeonly은 솔루션을 제공합니다. 몇 가지 간단한 테스트 파일을 사용해보십시오.

일단 생각해 냈습니다. Sweave를 다시 믹스로 접어 넣으면 Sweave가 매우 단순한 사전 작업 단계 인 '단순한'단계를 거친 후에 작동합니다.

+4

SweaveInput도 참조하십시오. – jverzani

1

한 가지 확실한 대답은 메이크 파일을 사용하여 패키지 cachesweave를 사용하여 적절한 순서로 관련 파일을 처리하는 것입니다.

2

Dirk와 mjm의 대답을 확장하려면 \include과 Makefiles를 사용하는 것이 좋습니다.

마스터 파일이 있다고 가정하면 master.tex입니다. 기본적으로

.SUFFIXES: .tex .pdf .Rnw .R 

MAIN = master 
##List your your .Rnw includes 
RNWINCLUDES = chapter1 chapter2 chapter3 
TEX = $(RNWINCLUDES:=.tex) 
RFILES = $(RNWINCLUDES:=.R) 
RNWFILES = $(INCLUDES:=.Rnw) 

all: $(MAIN).pdf 
    $(MAIN).pdf: $(TEX) $(MAIN).tex 

R: $(RFILES) 

.Rnw.R: 
    R CMD Stangle $< 

.Rnw.tex: 
    R CMD Sweave $< 

.tex.pdf: 
    pdflatex $< 
    bibtex $* 
    pdflatex $< 
    pdflatex $< 

.SUFFIXES이 세트를 제공하는 파일에서 즉 일부 .tex.Rnw 파일,

\include chapter1 
\include chapter2 
\include chapter3 
.... 

이제 다음 메이크가 .tex, .R.pdf 파일을 생성하는 기능을 제공 포함 한 파일 형식에서 다른 파일 형식으로 변환하기위한 규칙 예를 들어, .Rnw에서 .R로 변환하기 위해, 우리는 내가 RStudio (http://www.rstudio.com/ide/)를 사용하는 것이 좋습니다 명령을

`R CMD Stangle $<` 
5

를 사용합니다. Sweave는 IDE에 잘 통합되어 있으며 다중 파일 문서를 지원합니다. 심지어 다중 파일 문서 작업시 Synctex 및 TeX 오류 로그 탐색 기능이 여전히 작동합니다.

마스터 파일에서 당신은 하위 파일의 지시어

% !Rnw root = Master.Rnw 

을 포함하여 당신은 아이가 마스터 파일에 파일을 다시 연결할 수 있습니다

\SweaveInput{Child.Rnw} 

사용하여 하위 파일을 포함 할 수 있습니다.그런 식으로 자식 파일을 작업하고 조판 할 때 RStudio는 마스터 파일을 조판 (typeset)하는 것을 알고 있습니다.

자세한 것은 http://www.rstudio.com/ide/docs/authoring/multiple_rnw_files

관련 문제