3.1 HTML
(bookdown을 사용한) 책 렌더링과 (rmarkdown을 사용한) 단일 R Markdown 문서를 HTML로 렌더링하는 것의 주요 차이점은 책은 기본적으로 여러 HTML 페이지를 생성한다는 것입니다. 일반적으로 장(Chapter)당 하나의 HTML 파일을 생성합니다. 이렇게 하면 책을 읽을 때 특정 장을 북마크하거나 다른 사람과 URL을 공유하기가 더 쉽고 웹 브라우저에 책을 더 빨리 로드할 수 있습니다. 현재 HTML 출력에 대해 GitBook 스타일, Bootstrap 스타일 그리고 Tufte 스타일 등과 같은 다양한 스타일을 제공하고 있습니다.
3.1.1 GitBook 스타일
GitBook 스타일은 Friendcode, Inc.(https://www.gitbook.com)에서 시작한 프로젝트인 GitBook에서 차용했으며 Markdown으로 저자가 책을 쓸 수 있도록 지원하고 있습니다. 왼쪽에 목차를 보여주는 사이드 바와 오른쪽에 책의 본문을 보여주는 레이아웃으로 아름다운 스타일을 제공합니다. 디자인은 창 크기에 반응합니다. 예를 들어, 창이 충분히 넓을 때 탐색 버튼이 책 본문의 왼쪽/오른쪽에 표시되고 창이 좁으면 하단으로 축소되어 독자가 책의 본문을 읽을 수있는 수평 공간을 더 많이 제공합니다.
원래 GitBook 프로젝트에 비해 몇 가지 개선 사항이 있습니다. 가장 중요한 점은 Markdown 엔진을 Pandoc 기반의 R Markdown v2로 대체하여 책을 쓸 때 사용할 수 있는 더 많은 기능이 있다는 것입니다.
- Markdown에 R 코드 청크와 인라인 R 표현식을 포함할 수 있으며, 이를 통해 재현 가능한 문서를 쉽게 생성하고 계산을 실제 출력과 동기화하는 것에서 자유롭게 해 줍니다 (knitr이 자동으로 처리합니다).
- Markdown 구문은 훨씬 더 풍부합니다. LaTeX 수학 표현 그리고 인용과 같이 Pandoc의 Markdown이 지원하는 모든 것을 작성할 수 있습니다.
- 책에 HTML 위젯 그리고 Shiny 앱과 같은 대화형 콘텐츠 (HTML 출력 전용)를 포함할 수 있습니다.
또한 곧 소개할 몇 가지 유용한 기능을 사용자 인터페이스에 추가했습니다. bookdown에서 GitBook 스타일의 출력 형식 함수는 gitbook()
입니다. 그 인수는 다음과 같습니다.
gitbook(fig_caption = TRUE,
number_sections = TRUE,
self_contained = FALSE,
anchor_sections = TRUE,
lib_dir = "libs",
pandoc_args = NULL, ...,
template = "default",
split_by = c("chapter", "chapter+number", "section",
"section+number", "rmd", "none"),
split_bib = TRUE,
config = list(),
table_css = TRUE)
fig_caption
, lib_dir
그리고 ...
를 포함한 대부분의 인수는 rmarkdown::html_document()
로 전달됩니다. 가능한 옵션의 전체 목록은 rmarkdown::html_document()
의 도움말 페이지를 확인하세요.
다음 두 가지 이유로 fig_caption = TRUE
를 사용하는 것이 좋습니다.
캡션을 사용하여 그림을 설명하는 것이 중요합니다.
그림 캡션 사용은 출력이 LaTeX 일 때 그림이 부동(floating) 환경에 배치된다는 것을 의미합니다. 그렇지 않으면 특정 페이지에 많은 공백이 생길 수 있습니다. 그림/표 번호의 형식은 섹션에 번호가 매겨져 있는지 여부에 따라 달라집니다.
number_sections = TRUE
인 경우 이 숫자는 X.i
형식이 됩니다. 여기서 X
는 장 번호이고 i
는 증가하는 숫자입니다. 만일 섹션에 번호가 지정되지 않은 경우 모든 그림/표는 1, 2,…, N으로 책 전체에 걸쳐 순차적으로 번호가 매겨집니다. 두 경우 모두 그림과 표는 독립적으로 번호가 지정됩니다.
...
의 가능한 모든 인수 중에서 css
인수를 사용하여 하나 이상의 사용자 정의 CSS 파일을 제공하여 기본 CSS 스타일을 수정할 수 있습니다. gitbook()
에 하드 코딩된 html_document()
의 몇 가지 인수가 있으며 그것을 변경할 수 없습니다. toc = TRUE
(toc : table of content, 목차 표시), theme = NULL
( Bootstrap 테마를 사용하지 않음) 그리고 template
(내부 GitBook 템플릿 사용).
자체 포함된 HTML 페이지를 만들기 위해서는 self_contained = TRUE
를 변경하면 모든 단일 HTML 파일에 포함되어야 하는 JS 및 CSS 파일이 많기 때문에 모든 HTML 파일의 전체 크기가 크게 증가할 수 있습니다.
이러한 html_document()
옵션 외에도 gitbook()
에는 split_by
, split_bib
그리고 config
등의 세 가지 인수가 있습니다.
split_by
인수는 HTML 출력을 여러 페이지로 분할하는 방법을 지정하며 가능한 값은 다음과 같습니다.
rmd
: 입력 Rmd 파일의 기본 파일 이름을 사용하여 HTML 파일 이름을 만듭니다. 예를 들어chapter3.Rmd
에 대해chapter3.html
을 생성합니다.none
: HTML 파일을 분할하지 않습니다(책 전체가 하나의 HTML 파일이 됩니다).chapter
: 첫 번째 수준의 헤더(#
) 즉 장별로 파일을 분할합니다.section
: 두 번째 수준 헤더(##
) 즉 절별로 파일을 분할합니다.chapter + number
그리고section + number
:chapter
그리고section
과 유사하지만 파일에 번호가 지정됩니다.
chapter
와 section
의 경우 HTML 파일 이름은 헤더 식별자에 의해 결정됩니다. 예를 들어, 장 제목이 # Introduction
인 첫 번째 장의 파일 이름은 기본적으로 introduction.html
이 됩니다. chapter + number
그리고 section + number
의 경우 ‘장/섹션 번호’가 HTML 파일 이름 앞에 추가됩니다 (예 :1-introduction.html
과 2-1-literature.html
). 헤더 식별자(헤더 ID)는 기본적으로 헤더 텍스트10 에서 자동으로 생성되며, 헤더 텍스트 뒤에 {#your-custom-id}
구문을 사용하여 헤더 식별자를 수작업으로 지정할 수 있습니다. 예 :
# An Introduction {#introduction}
The default identifier is `an-introduction` but we changed
it to `introduction`.
기본적으로 참고 문헌이 분할되고 관련 인용 항목이 각 페이지 하단에 배치되므로, 독자가 인용 세부 정보를 보기 위해 다른 참고 문헌 페이지로 이동할 필요가 없습니다. 이 기능은 split_bib = FALSE
를 사용하여 비활성화할 수 있으며, 이 경우 모든 인용이 별도의 페이지에 배치됩니다.
config
옵션에는 사용자 인터페이스의 세부 사항을 조정할 수 있는 몇 가지 하위 옵션이 있습니다. 모든 출력 형식 옵션 (bookdown::gitbook
뿐 만 아니라)은 명령 줄 인터페이스 bookdown::render_book()
을 사용하는 경우 format
함수로 전달되거나 YAML 메타 데이터로 작성될 수 있습니다. gitbook
형식의 config
기본 하위 옵션을 아래의 YAML 메타 데이터로 표시합니다(config
옵션 아래에 들여 쓰기가 되어 있음을 주의하기 바랍니다).
bookdown::gitbook:
config:
toc:
collapse: subsection
scroll_highlight: yes
before: null
after: null
toolbar:
position: fixed
edit : null
download: null
search: yes
fontsettings:
theme: white
family: sans
size: 2
sharing:
facebook: yes
github: no
twitter: yes
linkedin: no
weibo: no
instapaper: no
vk: no
all: ['facebook', 'twitter', 'linkedin', 'weibo', 'instapaper']
info: yes
toc
옵션은 목차(TOC, Table of Contents)의 동작을 제어합니다.
collapse
옵션을 통해 페이지가 로드될 때 처음에 일부 항목을 축소할 수 있습니다. 가능한 값은subsection
,section
,none
(또는null
) 등입니다. 이 옵션은 TOC가 매우 길고, 3 개 이상의 제목 수준이 있는 경우 유용할 수 있습니다.subsection
은 하위 섹션 (X.X.X)에 대한 모든 TOC 항목을 축소하는 것을 의미하고,section
은 섹션 (X.X)에 대한 항목을 의미하므로 맨 위 레벨의 제목은 처음에 표시되며,None
은 TOC의 항목을 축소하지 않음을 의미합니다. 축소된 TOC 항목의 경우 상위 TOC 항목을 클릭하여 가시성을 전환할 수 있습니다. 예를 들어 목차에서 장 제목을 클릭하여 섹션을 표시하거나 숨길 수 있습니다.
toc
의scroll_highlight
옵션은 책 본문을 스크롤할 때 목차 항목 강조 표시를 활성화할 지 여부를 나타냅니다(기본적으로 이 기능은 활성화되어 있음). 아래/위로 스크롤할 때 새 헤더가 현재 화면에 올 때마다 왼쪽의 목차에서 해당 항목이 강조 표시됩니다. 사이드 바의 너비가 고정되어 있으므로 제목 텍스트가 너무 넓어서 목차의 항목이 잘린 경우, 커서를 항목 위로 가져가면 전체 텍스트를 보여주는 도구 설명을 볼 수 있습니다.- HTML 태그
<li>
를 사용하여 TOC 앞뒤에 항목을 더 추가할 수 있습니다. 이러한 항목은 수평 구분선을 사용하여 TOC에서 분리됩니다. 파이프 문자|
를 사용하면 YAML 구문을 따르는 이러한 항목의 문자를 이스케이프할 필요가 없습니다.
- HTML 태그
toc:
before: |
<li><a href="...">My Awesome Book</a></li>
<li><a href="...">John Smith</a></li>
after: |
<li><a href="https://github.com/rstudio/bookdown">
Proudly published with bookdown</a></li>
- 다른 HTML 페이지를 탐색할 때 TOC의 스크롤 위치를 유지하려고 할 것입니다. 일반적으로 다음 페이지로 이동하더라도 고정된 위치에 TOC의 스크롤 막대가 표시됩니다. 그러나 페이지가 로드될 때 현재 장/섹션의 목차 항목이 표시되지 않으면 목차가 자동으로 스크롤되어 표시됩니다.
GitBook 스타일에는 책 설정을 동적으로 변경할 수 있도록 각 페이지 상단에 툴 바(그림 3.1 참고)가 있습니다.
toolbar
옵션에는 fixed
또는 static
값을 취할 수 있는 하위 옵션인 position
이 있습니다.
- 기본값은 도구 모음이 페이지 상단에 고정(
Fixed
)되므로 페이지를 아래로 스크롤해도 도구 모음이 계속 표시됩니다.static
인 경우 툴바가 페이지와 함께 스크롤되지 않습니다. 즉, 스크롤을 내리면 더 이상 볼 수 없습니다.
도구 모음의 첫 번째 버튼은 ‘사이드 바(왼쪽의 메뉴)’의 표시와 숨기기를 전환할 수 있습니다. 키보드의
S
키를 눌러도 동일한 작업을 수행할 수 있습니다. GitBook 스타일은 사이드 바의 가시성 상태를 기억할 수 있습니다. 예를 들어 사이드 바를 닫은 경우 다음에 책을 열면, 그대로 닫힌 상태로 유지됩니다. 실제로 GitBook 스타일은 검색 키워드 그리고 글꼴 설정과 같은 다른 많은 설정도 기억합니다.도구 모음의 두 번째 버튼은 ‘검색’ 버튼입니다. 키보드 단축키는
F
(Find)입니다. 버튼을 클릭하면 사이드 바 상단에 검색 창이 표시됩니다. 상자에 입력하면 목차가 필터링되어 검색 키워드와 일치하는 섹션을 표시합니다. 이제 화살표 키위
/아래
를 사용하여 검색 결과에서 이전/다음 일치 항목을 강조 표시할 수 있습니다. 검색 버튼을 다시 클릭하거나 검색 창 밖에서F
를 누르면 검색 키워드가 비워지고 검색 창이 숨겨집니다. 검색을 비활성화하려면config
에서search: no
옵션을 설정합니다.세 번째 버튼은 ‘글꼴/테마 설정’을 위한 것입니다. 독자는 글꼴 크기(크거나 작게), 글꼴 모음 (serif 또는 sans serif) 그리고 테마 (
White
,Sepia
또는Night
)를 변경할 수 있습니다.fontsettings
옵션을 통해 이러한 설정의 초기 값을 설정할 수 있습니다.- 글꼴 크기는
0
~4
의 척도로 측정됩니다. 초기 값은1
,2
(기본값),3
또는4
로 설정할 수 있습니다. fontsettings: null
(또는no
)을 설정하여 도구 모음에서 버튼을 제거할 수 있습니다.
# changing the default
fontsettings:
theme: night
family: serif
size: 3
edit
옵션은 섹션 ??에 언급된 옵션과 동일합니다. 비어 있지 않으면 편집 버튼이 도구 모음에 추가됩니다. 이것은 버튼을 클릭하고 풀 요청을 보낸 후 GitHub에서 책을 편집하여 책에 대한 잠재적 기여자가 기여할 수 있도록 설계되었습니다. history
와 view
옵션은 동일한 방식으로 작동합니다.
책에 독자가 다운로드할 수 있는 다른 출력 형식이 있는 경우 다운로드 버튼을 툴바에 추가 할 수 있도록 download
옵션을 제공할 수 있습니다.
- 이 옵션은 문자형 벡터 또는 각 벡터의 길이가 2 인 문자형 벡터 목록을 사용합니다. 문자형 벡터인 경우 ‘파일 이름’ 벡터이거나 파일 이름의 ‘확장자명’이어야 합니다. 예를 들어 다음 설정 모두 괜찮습니다.
download: ["book.pdf", "book.epub"]
download: ["pdf", "epub", "mobi"]
- 파일 이름의 확장자만 제공하는 경우 파일 이름은 구성 파일
_bookdown.yml
의 책 파일 이름에서 파생됩니다 (섹션 ?? 참고). download
가null
이면gitbook()
은 책 출력 디렉토리에서 PDF, EPUB 및 MOBI 파일을 찾아서download
옵션에 자동으로 추가합니다.- 다운로드 버튼 만 숨기려면
download: no
를 사용하세요. - 독자가 다운로드할 모든 파일이 드롭 다운 메뉴에 표시되고 파일 이름 확장자가 메뉴 텍스트로 사용됩니다. 독자가 다운로드 할 수 있는 유일한 형식이 PDF 인 경우 다운로드 버튼은 드롭 다운 메뉴 대신 단일 PDF 버튼이 됩니다.
download
옵션 값의 다른 형식은 길이-2 벡터의 목록입니다. 예를 들어,
download: [["book.pdf", "PDF"], ["book.epub", "EPUB"]]
- 이는 다음과 같이 작성할 수도 있습니다.
download:
- ["book.pdf", "PDF"]
- ["book.epub", "EPUB"]
- 목록의 각 벡터는 메뉴에 표시할 파일 이름과 텍스트로 구성됩니다. 첫 번째 양식과 비교하여 이 양식을 사용하면 메뉴 텍스트를 사용자가 정의할 수 있습니다. 예를 들어 독자가 다운로드 할 PDF 사본이 두 개 있을 수 있으며 메뉴 항목을 다르게 만들어야 합니다.
툴바의 오른쪽에는 Twitter, Facebook, Linkedin과 같은 소셜 네트워크 웹 사이트에서 링크를 공유하는 버튼이 있습니다. sharing
옵션을 사용하여 활성화할 버튼을 결정할 수 있습니다. 이러한 버튼을 완전히 제거하려면 sharing: null
(또는no
)을 사용하면 됩니다.
도구 모음에 표시되는 또 다른 버튼은 문서를 탐색하는 데 사용할 수 있는 키보드 단축키를 나열하는 정보 (i
) 버튼입니다. 이 버튼은 info: no
를 설정하여 숨길 수 있습니다.
마지막으로 Pandoc을 통해 GitBook HTML 템플릿에 전달할 수있는 YAML 메타 데이터의 최상위 옵션이 몇 가지 더 있습니다. HTML 출력에 명확한 가시적 효과가 없을 수 있지만 HTML 출력을 웹 사이트로 배포 할 때 유용할 수 있습니다. 이러한 옵션은 다음과 같습니다.
description
: HTML 헤드의<meta name = "description" content = "">
태그의content
속성에 쓸 문자열 (누락된 경우 책 제목이 사용됨) ). 이는 검색 엔진 최적화 (SEO, Search Engine Optimization)에 유용할 수 있습니다._italic_
또는**bold**
와 같은 마크 다운 형식이 없는 일반 텍스트여야 합니다.url
: 도서 웹 사이트의 URL, 예 :https://bookdown.org/yihui/bookdown/
.11github-repo
:user/repo
형식의 책의 GitHub 저장소입니다.cover-image
: 책의 표지 이미지 경로입니다.apple-touch-icon
: 아이콘의 경로 (예 : PNG 이미지). 이것은 iOS 전용입니다. 웹 사이트가 홈 화면에 추가되면 링크가 이 아이콘으로 표시됩니다.apple-touch-icon-size
: 아이콘의 크기 (기본적으로 152 x 152 픽셀).favicon
: “favorite icon(즐겨 찾기 아이콘)” 경로입니다. 일반적으로 이 아이콘은 브라우저의 주소 표시 줄에 표시되거나 브라우저가 탭을 지원하는 경우 탭의 페이지 제목 앞에 표시됩니다.
아래는 몇 가지 샘플 YAML 메타 데이터를 보여줍니다 (다시 말하지만, 이들은 최상위 옵션입니다).
---
title: "An Awesome Book"
author: "John Smith"
description: "This book introduces the ABC theory, and ..."
url: 'https\://bookdown.org/john/awesome/'
github-repo: "john/awesome"
cover-image: "images/cover.png"
apple-touch-icon: "touch-icon.png"
apple-touch-icon-size: 120
favicon: "favicon.ico"
---
description
과 cover-image
설정의 좋은 효과는 트위터와 같은 일부 소셜 네트워크 웹 사이트에서 책의 링크를 공유하면 링크가 자동으로 책의 표지 이미지와 설명이 있는 카드로 확장될 수 있다는 것입니다.
3.1.2 Bootstrap 스타일
이전에 R Markdown을 사용한 적이 있다면 R Markdown HTML 출력의 기본 스타일인 Bootstrap 스타일(http://getbootstrap.com)에 익숙해야 합니다. rmarkdown의 출력 형식 함수는 html_document()
이며, 기본 형식으로 html_document()
를 사용하는 bookdown에 해당 형식 html_book()
이 있습니다. 사실 bookdown에는 보다 일반적인 형식인 html_chapters()
가 있으며 html_book()
은 특별한 경우입니다.
html_chapters(toc = TRUE,
number_sections = TRUE,
fig_caption = TRUE,
lib_dir = "libs",
template = bookdown_file("templates/default.html"),
pandoc_args = NULL, ...,
base_format = rmarkdown::html_document,
split_bib = TRUE,
page_builder = build_chapter,
split_by = c("section+number", "section",
"chapter+number", "chapter", "rmd", "none"))
기본 출력 형식 함수를 사용하는 base_format
인수가 있으며 html_book()
은 기본적으로 html_chapters(base_format = rmarkdown::html_document)
입니다. html_book()
의 모든 인수는 html_chapters()
로 전달됩니다.
html_book(...)
즉,toc
(목차 표시 여부), number_sections
(섹션 제목 번호 지정 여부) 등과 같은 rmarkdown::html_document
의 대부분의 인수를 사용할 수 있습니다. 다시 한 번 rmarkdown::html_document
의 도움말 페이지에서 가능한 옵션의 전체 목록을 확인하세요. self_contained
인수는 내부적으로 FALSE
로 하드 코딩되어 있으므로 이 인수의 값을 변경할 수 없습니다. 이전 섹션에서 split_by
인수에 대해 설명했습니다.
template
과 page_builder
인수는 고급 사용자를 위한 것이며 HTML 출력을 사용자 정의해야 할 강력한 필요성이 있지 않다면, rmarkdown::html_document()
에서 제공하는 많은 옵션들이 여러분이 원하는 것을 주지않는다는 것입니다.
다른 HTML 템플릿을 template
인수에 전달하려면 템플릿에 세 쌍의 HTML 주석이 포함되어야 하며 각 주석은 별도의 줄에 있어야 합니다.
<!-bookdown:title:start->
와<!-bookdown:title:end->
는 책의 제목 섹션을 표시합니다. 이 섹션은 렌더링 된 책의 첫 페이지에만 배치됩니다.<!-bookdown:toc:start->
와<!-bookdown:toc:end->
는 모든 HTML 페이지에 배치될 목차 섹션을 표시합니다.<!-bookdown:body:start->
와<!-bookdown:body:end->
는 책의 HTML 본문을 표시하고 HTML 본문은 여러 개별 페이지로 분할됩니다. 모든 R Markdown 또는 Markdown 파일을 병합하고 단일 HTML 파일로 렌더링한 다음 분할합니다.
기본 HTML 템플릿을 열어 이러한 주석이 삽입된 위치를 확인할 수 있습니다.
bookdown:::bookdown_file("templates/default.html")
# you may use file.edit() to open this file
bookdown이 내부적으로 여러 페이지의 HTML 출력을 생성하는 방법에 대해 알게 되면 위의 주석 토큰에서 추출한 HTML 조각을 사용하여 각 개별 HTML 페이지를 구성하는 함수인 page_builder
인수를 더 쉽게 이해할 수 있습니다. page_builder
의 기본값은 bookdown의 build_chapter
함수이며 소스 코드는 비교적 간단합니다 (button_link()
와 같은 내부 함수는 무시).
build_chapter = function(
head, toc, chapter, link_prev, link_next, rmd_cur, html_cur, foot
) {
# add a has-sub class to the <li> items that has sub lists
toc = gsub('^(<li>)(.+<ul>)$', '<li class="has-sub">\\2', toc)
paste(c(
head,
'<div class="row">',
'<div class="col-sm-12">',
toc,
'</div>',
'</div>',
'<div class="row">',
'<div class="col-sm-12">',
chapter,
'<p style="text-align: center;">',
button_link(link_prev, 'Previous'),
source_link(rmd_cur, type = 'edit'),
source_link(rmd_cur, type = 'history'),
source_link(rmd_cur, type = 'view'),
button_link(link_next, 'Next'),
'</p>',
'</div>',
'</div>',
foot
), collapse = '\n')
}
기본적으로 이 함수는 HTML 제목, 목차, 장 본문 등과 같은 여러 구성 요소를 사용하며 완전한 HTML 페이지의 HTML 소스인 문자열을 반환할 것으로 예상됩니다. gsub()
과 paste()
와 같은 텍스트 처리 함수를 사용하여 이 함수의 모든 구성 요소를 조작할 수 있습니다.
기본 페이지 빌더가 하는 일은 첫 번째 행에 TOC를, 두 번째 행에 본문을, 본문 하단에 탐색 버튼을 배치하고, 이를 HTML 머리말과 꼬리말을 연결하는 것입니다. 다음은 build_chapter()
의 출력을 이해하는 데 도움이 되는 HTML 소스 코드의 예입니다.
<html>
<head>
<title>A Nice Book</title>
</head>
<body>
<div class="row">TOC</div>
<div class="row">
CHAPTER BODY
<p>
<button>PREVIOUS</button>
<button>NEXT</button>
</p>
</div>
</body>
</html>
모든 HTML 페이지의 주요 차이점은 장의 본문이며 나머지 요소의 대부분은 동일합니다. html_book()
의 기본 출력에는 <head>
태그에 Bootstrap CSS와 JavaScript 파일이 포함됩니다.
목차(TOC)는 종종 탐색 목적으로 사용됩니다. GitBook 스타일에서 목차는 사이드 바에 표시됩니다. Bootstrap 스타일의 경우 특별한 스타일을 적용하지 않았으므로 정렬되지 않은 일반 목록으로 표시됩니다 (HTML 태그의 <ul>
). CSS 기술을 사용하면 이 목록을 탐색 모음으로 쉽게 전환할 수 있습니다. 이 패키지에서 toc.css
를 CSS 파일로 사용할 수 있으며, 여기에서 찾을 수 있습니다.
이 toc.css
파일을 책의 루트 디렉토리에 복사하고 css
옵션을 통해 HTML 출력에 적용할 수 있습니다.
---
output:
bookdown::html_book:
toc: yes
css: toc.css
---
웹에서 조금만 검색하면 <ul>
목록을 내비게이션 메뉴로 전환할 수 있는 방법이 많이 있으며, 원하는 메뉴 스타일을 선택할 수 있습니다. 방금 언급 한 toc.css
는 검정색 배경에 흰색 메뉴 텍스트가 있는 스타일이며 하위 메뉴를 지원합니다 (예 : 섹션 제목은 장 제목 아래에 드롭 다운 메뉴로 표시됩니다).
사실 theme
옵션을 null
로 설정하면 html_document()
에서 Bootstrap 스타일을 제거할 수 있으며, css
옵션(HTML head / foot에 임의의 콘텐츠를 포함하려는 경우 includes
옵션)을 사용하여 HTML 출력에 임의의 스타일을 적용할 수 있습니다.
3.1.3 Tufte 스타일
Bootstrap 스타일과 마찬가지로 Tufte 스타일은 출력 형식 tufte_html_book()
으로 제공되며, 이는 기본 형식으로 tufte::tufte_html()
을 사용하는 html_chapters()
의 특수한 경우이기도 합니다. Tufte 스타일에 익숙하지 않은 경우 tufte 패키지 (Xie and Allaire 2020)를 참조하세요. 기본적으로 왼쪽에 메인 열이 있고 오른쪽에 여백 열이 있는 레이아웃입니다. 본문은 주 열에 있고 여백 열은 각주, 여백 메모, 참조 그리고 여백 그림 등을 배치하는 데 사용됩니다.
tufte_html_book()
의 모든 인수는 html_book()
과 정확히 동일한 의미를 갖습니다. 예를 들어 css
옵션을 통해 CSS를 맞춤 설정할 수도 있습니다. 그러나 여백 메모, 여백 그림 및 전체 너비 그림과 같이 Tufte 스타일에 특정한 몇 가지 요소가 있습니다. 이러한 요소를 생성하려면 특수 구문이 필요합니다. tufte 패키지의 설명서를 참조하십시오. 각주 및 참조는 자동으로 여백에 배치되기 때문 이에 대해 특별한 작업을 수행할 필요가 없습니다(일반적인 Markdown 구문 ^[footnote]
와 [@citation]
사용). tufte_html_book
형식의 간단한 YAML 예는 다음과 같습니다 :
---
output:
bookdown::tufte_html_book:
toc: yes
css: toc.css
---
식별자가 자동으로 생성되는 방법에 대한 자세한 내용은 Pandoc 설명서의
자동 식별자
확장 http://pandoc.org/MANUAL.html#header-identifiers 을 참조하십시오.↩︎:
기호 앞의 백 슬래시는 기술적인 문제로 인한 것입니다. Pandoc이 링크를 HTML 코드<a href="..."> </a>
로 변환하는 것을 방지하고자 하는 것입니다. 자세한 내용은 https://github.com/jgm/pandoc/issues/2139에서 확인하세요.↩︎