\(\LaTeX\) 문서구조는 Preamble
전문과 본문(Body)으로 구성된다. R마크다운에 들어가는 내용은 주로 본문으로 구성되기 때문에 문서 앞과 뒤를 넣을 수 있는 부분을 \(\LaTeX\)의 전문(Preamble) 기능으로 대체할 경우 품질 좋은 데이터 과학 문서를 제작할 수 있다.
\documentclass{article}
% 전문 preamble
\begin{document}
% 본문 body \end{document}
preamble
을 조금더 직관적으로 표현하면 \(\LaTeX\)의 팩키지를 가져오는 import.tex
파일로 지정하고, 첫장을 cover.tex
PDF 파일로 준비한다. 그리고 나머지 부분은 일반적인 문서 작성하듯이 하면 된다.
/
report|-- rmarkdown.Rmd
|-- biblatex.bib
|-- sections/
|-- import.tex
|-- cover.tex
|-- images/
|-- ggplot.png
in_header
에 가져올 팩키지를 지정하고, 겉표지 PDF는 cover.tex
에서 설정한다.
---
layout: page
output:
bookdown::pdf_document2:
latex_engine: xelatex
toc: true
toc_depth: 2
number_sections: true
fig_width: 3
fig_height: 2
fig_caption: true
df_print: kable
highlight: tango
includes:
in_header: sections/import.tex <-- 팩키지 설정
before_body: sections/cover.tex <-- 겉표지 PDF
mainfont: NanumGothic
---
import.tex
pdfpages
를 사용하기 위해 import.tex
파일에 가져올 팩키지를 명시하고 HTML 파일을 PDF 파일에서 클릭하면 바로 연결할 수 있도록 \renewcommand
매크로도 함께 설정한다.
cat(readr::read_lines('rmarkdown/sections/import.tex'), sep = '\n')
\usepackage{kotex}
% PDF 겉장 -------------------------------
\usepackage{pdfpages}
% HTML 링크
\renewcommand{\href}[2]{#2\footnote{\url{#1}}}
cover.tex
cover.tex
파일에는 canva
웹사이트에서 제작한 겉표지 PDF 파일을 R마크다운 문서에 넣을 수 있도록 설정한다.
cat(readr::read_lines('rmarkdown/sections/cover.tex'), sep = '\n')
\includepdf[fitpaper]{cover-pdf}
basics-latex.Rmd
basics-latex.Rmd
파일은 PDF \(\LaTeX\) 겉장을 포함시켜 데이터 과학 보고서를 제작할 수 있도록 설정한다.
cat(readr::read_lines('rmarkdown/basics-latex.Rmd'), sep = '\n')
---
layout: page
output:
bookdown::pdf_document2:
latex_engine: xelatex
toc: true
toc_depth: 2
number_sections: true
fig_width: 3
fig_height: 2
fig_caption: true
df_print: kable
highlight: tango
includes:
in_header: sections/import.tex
before_body: sections/cover.tex
mainfont: NanumGothic
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE, message=FALSE, warning=FALSE,
comment="", digits = 3, tidy = FALSE, prompt = FALSE, fig.align = 'center')
library(tidyverse)
```
# 들어가며 {#rmd-intro}
[`lorem`](https://github.com/gadenbuie/lorem), [`shinipsum`](https://github.com/ThinkR-open/shinipsum) 팩키지가 도움이 된다.
`r lorem::ipsum(paragraphs = 1)`
# 텍스트 {#rmd-main}
`r lorem::ipsum(paragraphs = 1)`
## 증명 {#rmd-proof}
`r lorem::ipsum(paragraphs = 1)`
## 표 {#rmd-table}
`r shinipsum::random_table(5, 7, "numeric")`
## 그래프 {#rmd-graph}
<!-- `r shinipsum::random_ggplot()` -->
```{r lorem-ipsum-penguin}
library(palmerpenguins)
library(tidyverse)
ggplot(data = penguins,
aes(x = flipper_length_mm,
y = body_mass_g)) +
geom_point(aes(color = species,
shape = species),
size = 1,
alpha = 0.8) +
theme_minimal() +
scale_color_manual(values = c("darkorange","purple","cyan4")) +
theme(legend.position = c(0.2, 0.7),
legend.background = element_rect(fill = "white", color = NA),
plot.title.position = "plot",
plot.caption = element_text(hjust = 0, face= "italic"),
plot.caption.position = "plot")
```
## 그림 {#rmd-image}
<!-- `r shinipsum::random_image()` -->
![](../fig/latex-editor.png)
## 모형 {#rmd-model}
`r shinipsum::random_print("model") %>% broom::glance()`
# 마무리 {#rmd-conclusion}
`r lorem::ipsum(paragraphs = 1)`
\(\LaTeX\) 겉장을 R 마크다운 데이터 과학 보고서와 결합시켜 제작한 PDF 산출물은 다음과 같다.
::include_graphics("rmarkdown/basics-latex.pdf") knitr
데이터 과학자 이광춘 저작
kwangchun.lee.7@gmail.com