4.1 YAML 옵션
대부분의 출력 형식 유형의 경우 특정 형식의 highlight
옵션을 사용하여 구문 강조 스타일을 맞춤 설정할 수 있습니다. 현재 가능한 스타일은default
, tango
, pygments
, kate
, monochrome
, espresso
, zenburn
, haddock
, 그리고 breezedark
등이 있습니다. 예를 들어gitbook
형식으로tango
스타일을 선택할 수 있습니다.
---
output:
bookdown::gitbook:
highlight: tango
---
HTML 출력 형식의 경우 css
옵션을 사용하여 HTML 요소의 모양을 사용자가 정의하기 위한 자체 CSS 스타일 시트를 제공하고 싶어할 것입니다. HTML 및 LaTeX를 포함한 더 많은 형식에 적용되는 includes
옵션이 있습니다. includes
옵션을 사용하면 출력 본문 앞뒤에 임의의 맞춤 콘텐츠를 삽입할 수 있습니다. in_header
, before_body
, after_body
등의 세 가지 하위 옵션이 있습니다. 이러한 옵션을 이해하려면 HTML 또는 LaTeX 문서의 기본 구조를 알아야합니다. HTML 문서의 소스는 다음과 같습니다.
<html>
<head>
<!-- head content here, e.g. CSS and JS -->
</head>
<body>
<!-- body content here -->
</body>
</html>
in_header
옵션은 파일 경로를 가져 와서 <head>
태그에 삽입합니다. before_body
파일은 여는 <body>
태그 바로 아래에 삽입되고 after_body
는 닫는 태그 </body>
앞에 삽입됩니다.
LaTeX 소스 문서는 유사한 구조를 가지고 있습니다.
\documentclass{book}
% LaTeX preamble
% insert in_header here
\begin{document}
% insert before_body here
% body content here
% insert after_body here
\end{document}
includes
옵션은 매우 유용하고 유연합니다. HTML 출력의 경우 임의의 HTML 코드를 출력에 삽입할 수 있습니다. 예를 들어 HTML 출력에서 MathJax 라이브러리를 통해 렌더링된 LaTeX 수학 표현식이 있고, 방정식 번호를 왼쪽에 표시하려는 경우 (기본값은 오른쪽에 있음) 다음 코드를 포함하는 텍스트 파일을 만들 수 있습니다.
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
TeX: { TagSide: "left" }
});
</script>
파일 이름이 mathjax-number.html
이고 책의 루트 디렉토리 (모든 Rmd 파일이 포함 된 디렉토리)에 있다고 가정해 보겠습니다. 이 파일은 in_header
옵션을 통해 HTML 헤드에 삽입 할 수 있습니다.
---
output:
bookdown::gitbook:
includes:
in_header: mathjax-number.html
---
또 다른 예는 HTML 페이지에서 댓글이나 토론을 활성화하는 것입니다. Disqus (https://disqus.com) 또는 Hypothesis (https://hypothes.is) 등과 같은 여러 대안이 있습니다. 이러한 서비스는includes
옵션을 통해 HTML 책에 쉽게 삽입할 수 있습니다(자세한 내용은 섹션 5.5 참조).
마찬가지로 LaTeX에 익숙하다면 임의의 LaTeX 코드를 프리앰블에 추가할 수 있습니다. 즉, LaTeX 패키지를 사용하고 책에 대한 패키지 옵션을 설정할 수 있습니다. 예를 들어,이 책은 in_header
옵션을 사용하여 booktabs (더보기 좋은 테이블 용)과 longtable (여러 페이지에 걸쳐있는 테이블 용)과 같은 몇 가지 LaTeX 패키지를 더 사용하고 그래픽의 링크가 작동하지 않는 XeLaTeX 문제를 수정하는데 적용하였습니다 :
\usepackage{booktabs}
\usepackage{longtable}
\ifxetex
\usepackage{letltxmacro}
\setlength{\XeTeXLinkMargin}{1pt}
\LetLtxMacro\SavedIncludeGraphics\includegraphics
\def\includegraphics#1#{% #1 catches optional stuff (star/opt. arg.)
\IncludeGraphicsAux{#1}%
}%
\newcommand*{\IncludeGraphicsAux}[2]{%
\XeTeXLinkBox{%
\SavedIncludeGraphics#1{#2}%
}%
}%
\fi
위의 LaTeX 코드는 preamble.tex
파일에 저장되며 YAML 메타 데이터는 다음과 같습니다.
---
output:
bookdown::pdf_book:
includes:
in_header: preamble.tex
---