5.1 책 빌드

To build all Rmd files into a book, you can call the render_book() function in bookdown. Below are the arguments of render_book():

render_book(input = ".", output_format = NULL, ..., clean = TRUE, 
  envir = parent.frame(), clean_envir = !interactive(), 
  output_dir = NULL, new_session = NA, preview = FALSE, 
  config_file = "_bookdown.yml")

가장 중요한 인수는output_format으로, 출력 형식의 문자열 (예 :'bookdown::gitbook')을 사용할 수 있습니다. 이 인수를 비워 둘 수 있으며, 기본 출력 형식은 첫번째 Rmd 파일의 YAML 메타 데이터 또는 섹션 4.4에서 살펴본 대로 별도의 YAML 파일인 _output.yml 에 지정된 첫번째 output 형식이 될 것이다.

모든 형식이_output.yml에 지정되면 R 또는 Shell 스크립트 또는 Makefile을 작성하여 책을 컴파일하는 것이 쉽습니다. 다음은 쉘 스크립트를 사용하여 책을 HTML (GitBook 스타일 사용)과 PDF로 컴파일하는 간단한 예입니다.

#!/usr/bin/env Rscript

bookdown::render_book("index.Rmd", "bookdown::gitbook")
bookdown::render_book("index.Rmd", "bookdown::pdf_book")

Shell 스크립트는 Windows에서 작동하지 않지만 (엄격하게 사실은 아니지만) 아이디어를 얻을 수 있기를 바랍니다.

...인수는 출력 형식 함수에 전달됩니다. 인수cleanenvirrmarkdown::render()에 전달되어 중간 파일을 정리할지 여부를 결정하고 각각 R 코드를 평가할 환경을 지정합니다.

책의 출력 디렉토리는output_dir 인수를 통해 지정할 수 있습니다. 기본적으로 책은_book 디렉토리에 생성됩니다. 구성 파일_bookdown.ymloutput_dir 필드를 통해 변경할 수도 있으므로 책을 여러 출력 형식으로 렌더링하기 위해 여러 번 지정할 필요가 없습니다. new_session 인수는 섹션 1.4에 설명되어 있습니다. preview = TRUE를 설정하면input 인수에 지정된 Rmd 파일만 렌더링됩니다. 이는 전체 책을 다시 컴파일하지 않기 때문에 특정 장을 미리 볼 때 편리할 수 있지만 책을 출판할 때는이 인수는 반드시 ’FALSE’로 설정해야합니다.

많은 출력 파일이render_book()에 의해 생성됩니다. 때로는 책 디렉토리를 정리하고 다시 시작하고 싶을 수 있습니다. 예를 들어 knitr에서 자동으로 생성된 Figure 및 캐시 파일을 제거합니다. 이를 위해clean_book()함수가 설계되었습니다. 기본적으로 삭제할 수 있는 출력 파일을 알려줍니다. 이 파일 목록을 보고 출력 파일로 잘못 식별된 파일이 없는 것이 확실한 경우 (수작업으로 생성한 입력 파일을 삭제하고 싶지 않음) bookdown::clean_book(TRUE)를 사용하여 모든 파일을 삭제할 수 있습니다. 파일 삭제는 비교적 위험한 작업이므로 GIT와 같은 버전 관리 도구 또는 백업 및 복원을 지원하는 서비스를 통해 책을 유지 관리하는 것이 좋습니다. 따라서 실수로 삭제하더라도 특정 파일을 영원히 잃지 않을 것입니다.