서로 다른 두 위치에서 뜨개질을 할 때 Rmarkdown에서 상대 경로 사용
내 문제는 상대 링크를 사용하고 "컴파일"(편직)하는 것입니다.
RMarkdown을 사용하여 책을 쓰고 있습니다. 파일이 상대적으로 크기 때문에 서브 파일과 디렉토리로 분할해야합니다.
챕터 (chap1, chap2, ...)에 대한 링크 만 포함하는 마스터 파일이 있습니다. 각 장에 대한 파일이 있으며 각 장에는 일부 그림에 대한 참조가 필요합니다 (그림 1, ...).
masterfile.Rmd와 chap1.Rmd를 서로 독립적으로 편성하여 장에 대해 하나의 파일을, 전체 책에 대해 하나의 파일을 얻을 수 있기를 바랍니다.
다음은 내 파일이 구성되는 방식 (MVE)입니다. 디렉토리는 대문자로 표시됩니다.
- 뿌리
- masterfile.Rmd
- 피규어
- fig1.pdf
- fig2.pdf
- 장
- chap1.Rmd
- chap2.Rmd
- ...
masterfile.Rmd의 코드는 다음과 같습니다.
{r child = '/chapters/chap1.Rmd'}
chap1.Rmd의 코드는 다음과 같습니다.

내가에서 뜨면 chap1.Rmd
모든 것이 괜찮습니다. 에서 뜨면 masterfile
다음과 같은 메시지가 나타납니다.
[경고] 리소스 '../figures/fig1.pdf'를 가져올 수 없음 : PandocResourceNotFound "../figures/fig1.pdf"
fig1.pdf
찾을 수없는 것 같습니다 . 이것은 마스터 파일의 include 문이 코드를 "복사" chap1.Rmd
하고 ROOT
디렉토리 (디렉토리가 아님)에서 "실행"하기 CHAPTERS
때문에 ".."이 존재하지 않는 위치 (ROOT 이전)에 드라이브를 수행하기 때문이라고 생각합니다. 에서 니트 masterfile
.
내가 설정을 변경하고 쓸 수 
에 chap1.Rmd
파일. 에서 뜨개질을 할 때 잘 작동 masterfile
하지만 더 이상에서는 작동 하지 않습니다 chap1.Rmd
.
둘 다 갖는 방법을 알고 있습니까?
답변
RMarkdown 커뮤니티에 오신 것을 환영합니다!
KnitR, Rmd 및 pandoc 인터 워킹으로 인해 이것은 생각만큼 쉬운 해결책은 아니지만 디렉토리 재구성은 거의 쉬울 것입니다.
Rmarkdown 작가의 최신 책을 보더라도 RMarkdown Cookbook
여기 . 그들은 ROOT
디렉토리 에 모든 챕터를 가지고 있으며 이미지 (그리고 아마도 그림)에 대한 하위 디렉토리 만 가지고 있습니다.
자원:
1. 다른 유사한 질문
2. Github 옵션 knitr 질문
3. Rstudio 커뮤니티의 유사한 질문
Lua 필터 기능을 사용 하여 메인 파일을 편직 할 때 이미지 경로를 다시 쓸 수 있습니다. 예
function Image (img)
img.src = img.src:gsub('^%.%./', './')
return img
end
이렇게하면 경로 ../figures/fig1.pdf
가 ./figures/fig1.pdf
.
코드를 파일에 쓰고 추가를 통해 호출하는 코드를 사용하십시오 pandoc_args
(메인 파일에서만).
---
output:
html_document:
pandoc_args: ["--lua-filter=filter.lua"]
---