부록 A: 문서 구성요소
노트부록 안내
이 부록에서는 쿼토 문서의 기본 구성요소들과 마크다운 문법을 참조용으로 정리했습니다. 문서 코드화 패러다임의 기초가 되는 내용들입니다.
마크다운 기본 문법
제목과 섹션
# 제목 1 (H1)
## 제목 2 (H2)
### 제목 3 (H3)
#### 제목 4 (H4)
##### 제목 5 (H5)
###### 제목 6 (H6)
텍스트 서식
**굵은 글씨** 또는 __굵은 글씨__
*기울임 글씨* 또는 _기울임 글씨_
***굵고 기울임*** 또는 ___굵고 기울림___
~~취소선~~`인라인 코드`
> 인용문
> 여러 줄에 걸친
> 인용문
목록
순서 없는 목록
- 첫 번째 항목
- 두 번째 항목
- 중첩된 항목
- 또 다른 중첩 항목
- 세 번째 항목
순서 있는 목록
1. 첫 번째 항목
2. 두 번째 항목
1. 중첩된 항목
2. 또 다른 중첩 항목
3. 세 번째 항목
링크와 이미지
[링크 텍스트](https://example.com)
[참조 링크][ref-label]

![참조 이미지][img-ref]
[ref-label]: https://example.com
[img-ref]: path/to/image.png
표
| 열1 | 열2 | 열3 |
|--------|--------|--------|
| 내용1 | 내용2 | 내용3 |
| 내용4 | 내용5 | 내용6 |
정렬 지정:
| 왼쪽 정렬 | 가운데 정렬 | 오른쪽 정렬 |
|:----------|:----------:|------------:|
| 내용 | 내용 | 내용 |
쿼토 확장 문법
교차 참조
@fig-scatter 에서 보는 바와 같이...
@tbl-results 의 결과에 따르면...
@sec-methods 에서 설명한 방법론을... @eq-regression 식을 사용하여...
콜아웃
::: {.callout-note}
참고 사항입니다.
:::
::: {.callout-tip title="팁"}
유용한 팁을 제공합니다.
:::
::: {.callout-warning}## 주의사항
중요한 경고 내용입니다.
:::
::: {.callout-important}## 중요
꼭 기억해야 할 내용입니다.
:::
::: {.callout-caution collapse="true"}## 세부사항
접을 수 있는 콜아웃입니다. :::
다이어그램
Mermaid
```{mermaid}
graph TD
A[시작] --> B{조건}
B -->|예| C[작업 A]
B -->|아니오| D[작업 B]
C --> E[종료] D --> E
#### DOT (Graphviz)
```markdown
```{dot}
digraph G {
A -> B;
B -> C;
C -> A;
}
### 수식
#### 인라인 수식
```markdown
변수 $x$의 값은 $\alpha + \beta = \gamma$ 입니다.
블록 수식
$$
\hat{y} = \beta_0 + \beta_1 x_1 + \beta_2 x_2 + \epsilon $$ {#eq-regression}
조건부 콘텐츠
::::: {.content-visible when-format="html"}
HTML 출력에서만 보이는 내용
:::::
::::: {.content-hidden when-format="pdf"}
PDF에서는 숨겨지는 내용 :::::
코드 청크 옵션
기본 옵션
::: {.cell}
```{.r .cell-code}
# R 코드
plot(cars)
:::
### 그림 옵션
```markdown
::: {.cell}
```{.r .cell-code}
plot(cars$speed, cars$dist,
xlab = "속도", ylab = "제동거리",
main = "자동차 제동 거리 분석")
:::
### 표 옵션
```markdown
::: {#tbl-summary .cell tbl-cap='기본 통계량'}
```{.r .cell-code}
library(knitr)
kable(summary(cars))
:::
## 멀티미디어 요소 {#sec-multimedia}
### 동영상
```markdown
오디오
{{< audio audio-file.mp3 >}}
PDF 임베딩
인터랙티브 요소
탭
::: {.panel-tabset}
## 탭 1
첫 번째 탭의 내용입니다.
## 탭 2
두 번째 탭의 내용입니다.
## 탭 3
세 번째 탭의 내용입니다.
:::
접기/펼치기
<details>
<summary>클릭하여 펼치기</summary>
숨겨진 내용이 여기에 표시됩니다.
자세한 설명이나 부가 정보를 포함할 수 있습니다.
</details>
레이아웃
다단 레이아웃
:::: {.columns}
::: {.column width="40%"}
왼쪽 컬럼의 내용입니다.
:::
::: {.column width="60%"}
오른쪽 컬럼의 내용입니다.
더 넓은 공간을 차지합니다.
:::
::::
사이드바
::: {.column-margin}
여기는 여백 영역입니다.
주석이나 부가 설명을 넣을 수 있습니다. :::
메타데이터와 YAML
기본 YAML 헤더
---
title: "문서 제목"
subtitle: "부제목"
author:
- name: "저자 이름"
affiliation: "소속 기관"
email: "author@example.com"
date: today
date-format: "YYYY년 MM월 DD일"
format:
html:
theme: cosmo
toc: true
number-sections: true
pdf:
documentclass: article
fontsize: 11pt
---
고급 메타데이터
---
title: "고급 문서 설정"
lang: ko-KR
bibliography: references.bib
csl: apa.csl
link-citations: true
crossref:
fig-title: "그림"
tbl-title: "표"
eq-title: "식"
sec-title: "절"
filters:
- lightbox
- include-code-files
lightbox: auto
code-annotations: hover
---
참고문헌
인용 방법
[@smith2020]
단일 저자: [@smith2020; @jones2021]
복수 저자: [@smith2020, pp. 15-20]
페이지 포함:
저자명 포함: @smith2020 은 다음과 같이 주장한다... 괄호 없이: -@smith2020 의 연구에 따르면...
BibTeX 예제
@article{smith2020,
title = {Document as Code Paradigm},
author = {Smith, John and Johnson, Alice},
journal = {Journal of Digital Publishing},
year = {2020},
volume = {15},
number = {3},
pages = {123--145},
doi = {10.1000/example}
}
최적화와 성능
캐싱
::: {.cell}
```{.r .cell-code}
# 시간이 오래 걸리는 계산
expensive_computation()
:::
### 조건부 실행
```markdown
::: {.cell}
```{.r .cell-code}
# 환경 변수가 설정된 경우에만 실행
full_analysis()
:::
```
이 부록의 내용들은 문서 코드화 패러다임의 핵심 구성요소들입니다. 필요할 때마다 참조하여 효율적인 문서 작성에 활용하세요.