1.3 사용법

일반적인 bookdown 책에는 여러 장이 포함되어 있으며 하나의 장은 파일 이름 확장자가 .Rmd 인 하나의 R Markdown 파일로 저장되어 있습니다. 각 R Markdown 파일은 첫 번째 수준 제목을 사용하는 장 제목으로 바로 시작해야 합니다 (예 :# Chapter Title). 모든 R Markdown 파일은 특히 중국어, 일본어 그리고 한국어와 같은 멀티 바이트 문자가 포함된 경우 UTF-8로 인코딩해야 합니다. 다음은 하나의 예입니다 (6개의 Rmd 파일과 그 내용을 보여 주고 있습니다.)

  • index.Rmd
# Preface {-}
  
In this book, we will introduce an interesting
method.
  • 01-intro.Rmd
# Introduction
  
This chapter is an overview of the methods that
we propose to solve an **important problem**.
  • 02-literature.Rmd
# Literature

Here is a review of existing methods.
  • 03-method.Rmd
# Methods
  
We describe our methods in this chapter.
  • 04-application.Rmd
# Applications
  
Some _significant_ applications are demonstrated
in this chapter.
  
## Example one
  
## Example two
  • 05-summary.Rmd
# Final Words

We have finished a nice book.

기본적으로 bookdown은 파일 이름 순서에 따라 모든 Rmd 파일을 병합합니다. 예를 들어 ‘01 -intro.Rmd ’는 ’02 -literature.Rmd’ 앞에 표시됩니다. 밑줄 _로 시작하는 Rmd 파일은 건너 뜁니다. ’index.Rmd’라는 Rmd 파일이 있는 경우 모든 Rmd 파일을 병합할 때 항상 제일 첫 번째 파일로 처리됩니다. 이 특별한 처리의 이유는 ’index.Rmd’에서 생성되는 HTML 파일인 ’index.html’이 일반적으로 웹 사이트를 볼 때 기본 색인 파일이기 때문입니다. 즉, http://yihui.org/에 접속하면, 실제로는 http://yihui.org/index.html이 열리는 것입니다.

책 디렉토리에 _bookdown.yml이라는 구성 파일을 수정하여 위의 동작을 재정의할 수 있습니다. 이 파일은 YAML 파일이며 R Markdown 사용자는 R Markdown 문서의 시작 부분에서 메타 데이터를 작성하는데도 사용해 보았기 때문에 이 형식에 익숙할 것입니다. 섹션 B.2)에서 YAML에 대해 자세히 알아보겠습니다. 특히, ’rmd_files’라는 필드를 사용하여 책에 대한 Rmd 파일의 목록과 순서를 정의할 수도 있습니다. 예를 들면

rmd_files: ["index.Rmd", "abstract.Rmd", "intro.Rmd"]

이 경우 bookdown은 이 YAML 필드에서 정의한 파일 목록을 사용합니다 (존재하는 경우 ’index.Rmd’가 목록에 추가되고 밑줄로 시작하는 파일 이름은 항상 무시됨). 책에서 HTML 및 LaTeX / PDF 출력을 모두 원하고 HTML 및 LaTeX 출력에 서로 다른 Rmd 파일을 사용하려면 두 출력 형식에 대해 이러한 파일을 별도로 지정할 수 있습니다.

rmd_files:
  html: ["index.Rmd", "abstract.Rmd", "intro.Rmd"]
  latex: ["abstract.Rmd", "intro.Rmd"]

R Markdown 파일에 대해 이야기했지만 각 장의 파일들이 실제로 R Markdown 파일일 필요는 없습니다. 일반 마크 다운 파일(.md)일 수 있으며 R 코드 청크를 전혀 포함할 필요도 없습니다. bookdown을 사용하여 소설이나 시를 작성할 수도 있습니다!

현재 사용할 수 있는 주요 출력 형식에는 bookdown::pdf_book, bookdown::gitbook, bookdown::html_book 그리고 bookdown::epub_book 등이 있습니다. rmarkdown::render()와 유사한 bookdown::render_book() 함수가 있지만 출력 형식 함수를 사용하여 multiple Rmd 문서를 책으로 렌더링하도록 설계되었습니다. RStudio IDE의 콘솔 명령 줄에서 직접 이 함수를 호출하거나 RStudio IDE에서 관련 메뉴 버튼을 클릭할 수도 있습니다. 다음은 몇 가지 명령 줄의 예입니다.

bookdown::render_book("foo.Rmd", "bookdown::gitbook")
bookdown::render_book("foo.Rmd", "bookdown::pdf_book")
bookdown::render_book("foo.Rmd", bookdown::gitbook(lib_dir = "libs"))
bookdown::render_book("foo.Rmd", bookdown::pdf_book(keep_tex = TRUE))

RStudio IDE에서 render_book() 함수와 출력 형식 함수를 사용할 수 도 있습니다 그렇게 하려면 bookdown::bookdown_site1의 값을 사용하는 site라는 YAML 필드를 정의할 수 있고, 출력 형식식 함수는 output 필드에서 사용될 수 있습니다.

---
site: "bookdown::bookdown_site"
output:
  bookdown::gitbook:
    lib_dir: "book_assets"
  bookdown::pdf_book:
    keep_tex: yes
---

그런 다음 RStudio의 Build 창에서 Build Book 버튼을 클릭하여 Rmd 파일을 책으로 컴파일하거나 도구 모음에서 Knit 버튼을 클릭하여 현재 장에 있는 Rmd 파일을 미리 볼 수 있습니다.

_bookdown.yml의 더 많은 bookdown 구성 옵션은 섹션 4.4에 설명되어 있습니다. 이러한 구성 외에도 책의 제목, 저자 그리고 날짜 등과 같은 책의 첫 번째 Rmd 파일(예, index.Rmd 파일)의 YAML 메타 데이터 영역에 Pandoc 관련 구성을 지정할 수도 있습니다. 예를 들면 다음과 같습니다.

--- 
title: "Authoring A Book with R Markdown"
author: "Dae Ho Kim"
date: "2021-02-07"
site: "bookdown::bookdown_site"
output:
  bookdown::gitbook: default
documentclass: book
bibliography: ["book.bib", "packages.bib"]
biblio-style: apalike
link-citations: yes
---

  1. 이 함수는 bookdown::render_book() 함수를 호출합니다.↩︎