1 YAML 설정

1.1 \(\LaTeX\) 엔진

R마크다운에서 PDF 파일 문서를 생성하기 위해서는 \(\LaTeX\) 엔진이 필요한데 유니코드를 지원하는 xeLaTeX을 기본 엔진으로 설정한다. 이를 위해서 ko.TeX를 설치하고 RStudio에서 RSTUDIO_PDFLATEX 환경변수 설정을 통해 \(\LaTeX\) 엔진을 연결시킨다. usethis::edit_r_environ() 명령어를 통해 RSTUDIO_PDFLATEX="C:\texlive\2020\bin\win32"와 같이 ko.TeX이 설치된 경로를 지정하면 된다.

Sys.getenv("RSTUDIO_PDFLATEX")
[1] "C:\\texlive\\2020\\bin\\win32"

1.2 \(\LaTeX\) 글꼴

\(\LaTeX\)을 통해 PDF 파일을 조판하기 위해서는 한글글꼴이 필요하다. YAML 헤더에 mainfont: NanumGothic을 지정하여 한글 글꼴을 명시해야 ??? 혹은 와 같은 한글깨짐 문제를 해결할 수 있다.


---
layout: page
title: "LaTeX 과 PDF "
subtitle: "PDF 문서 기본"
author: "이광춘"
date: "2021-03-06"
output:
  pdf_document: 
    latex_engine: xelatex     <-- `LaTeX` 엔진 지정
    toc: true
    toc_depth: 2  
    number_sections: true
    fig_width: 3
    fig_height: 2
    fig_caption: true
    df_print: kable
    highlight: tango
mainfont: NanumGothic        <-- 한글 글꼴 설정
---

2 R lorem ipsum

R 마크다운으로도 다른 \(\LaTeX\)과 마찬가지로 로렘입섬(Lorem Ipsum)을 작성할 수 있는 팩키지가 다수 존재한다.

shinipsum은 특히 샤이니 앱을 개발할 때 빠르게 기능을 구현하는데 도움을 준다. lorem::ipsum() 기능도 좋지만, shinipsum::random_*() 함수를 사용하게 되면 텍스트는 물론이고 표, 모형, ggplot, 이미지 등을 빠르게 문서에 Shiny 앱에 넣을 수가 있다.

library(tidyverse)
cat(readr::read_lines('rmarkdown/basics.Rmd'), sep = '\n')
---
layout: page
title: "LaTeX 과 PDF "
subtitle: "PDF 문서 기본"
author: "이광춘"
date: "`r Sys.Date()`"
output:
  pdf_document: 
    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
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)
```

```{=html}
<style>
div.blue { background-color:#e6f0ff; border-radius: 5px; padding: 10px;}
</style>
```


# 들어가며 {#rmd-intro}

`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)`

3 PDF 예제

R마크다운 문서파일에 output:pdf_document: 출력결과를 하고 PDF 파일 기본설정을 통해 작성한 PDF 문서를 살펴보자.

knitr::include_graphics("rmarkdown/basics.pdf")
 

데이터 과학자 이광춘 저작

kwangchun.lee.7@gmail.com