# HWPX 기본 템플릿 (base)

> moai-office v1.0.0 | HWPX 기본 스타일 스펙

## 개요

모든 HWPX 문서의 기반이 되는 기본 템플릿입니다. 공통 페이지 설정, 폰트, 스타일을 정의합니다.
`scripts/hwpx/` 스크립트는 이 스펙을 참조하여 HWPX 파일의 `settings.xml` 및 `content/section0.xml`을 생성합니다.

---

## 1. 페이지 설정 (설정.xml / PageDef)

```yaml
용지:
  크기: A4
  너비: 210mm
  높이: 297mm
  방향: 세로(portrait)

여백:
  위: 30mm
  아래: 30mm
  왼쪽: 35mm
  오른쪽: 30mm
  머리글: 15mm
  바닥글: 15mm
  제본: 0mm

단: 1단 (기본)
```

---

## 2. 기본 폰트 설정

```yaml
본문_폰트:
  이름: 맑은 고딕
  영문: Times New Roman
  크기: 10pt
  장평: 100%
  자간: 0%

제목_폰트:
  이름: 맑은 고딕
  굵기: bold
  크기: 각 레벨별 상이

코드_폰트:
  이름: D2Coding
  영문: Courier New
  크기: 9pt
```

---

## 3. 스타일 정의

### 3.1 단락 스타일

| 스타일 ID | 이름 | 폰트 | 크기 | 굵기 | 정렬 | 간격(앞/뒤) |
|---------|------|------|------|------|------|-----------|
| `style_normal` | 본문 | 맑은 고딕 | 10pt | 보통 | 양쪽 | 0pt / 6pt |
| `style_h1` | 제목 1 | 맑은 고딕 | 18pt | 굵게 | 왼쪽 | 18pt / 9pt |
| `style_h2` | 제목 2 | 맑은 고딕 | 15pt | 굵게 | 왼쪽 | 12pt / 6pt |
| `style_h3` | 제목 3 | 맑은 고딕 | 13pt | 굵게 | 왼쪽 | 9pt / 4pt |
| `style_h4` | 제목 4 | 맑은 고딕 | 11pt | 굵게 | 왼쪽 | 6pt / 3pt |
| `style_caption` | 캡션 | 맑은 고딕 | 9pt | 보통 | 가운데 | 2pt / 4pt |
| `style_header` | 머리글 | 맑은 고딕 | 9pt | 보통 | 가운데 | 0pt / 0pt |
| `style_footer` | 바닥글 | 맑은 고딕 | 9pt | 보통 | 가운데 | 0pt / 0pt |
| `style_code` | 코드 | D2Coding | 9pt | 보통 | 왼쪽 | 0pt / 0pt |

### 3.2 줄 간격

```yaml
본문: 160% (줄 간격 기준)
제목: 130%
표 내부: 140%
```

### 3.3 목록 스타일

```yaml
번호_목록:
  형식: "1. / 가. / (1) / ①"
  들여쓰기: 10mm
  
글머리_목록:
  기호: "● / ○ / ▪"
  들여쓰기: 8mm
```

---

## 4. 표 기본 스타일

```yaml
기본_표:
  테두리: 실선 0.4mm 검정
  내부선: 실선 0.2mm 회색(#888888)
  헤더_배경: 연회색(#D9D9D9)
  헤더_폰트: 굵게
  셀_여백: 위아래 1mm, 좌우 2mm
  줄무늬: 교대 흰색/아주연회색(#F5F5F5)
```

---

## 5. 머리글 / 바닥글

```yaml
머리글:
  위치: 페이지 상단 중앙
  내용: 문서 제목 (자동)
  표시: 첫 페이지 제외

바닥글:
  위치: 페이지 하단 중앙
  내용: "- {페이지번호} -"
  표시: 전체 페이지
```

---

## 6. HWPX 파일 구조

HWPX는 ZIP 아카이브로 구성됩니다:

```
document.hwpx
├── META-INF/
│   └── container.xml
├── Contents/
│   ├── content.hpf      # 패키지 정의
│   ├── section0.xml     # 본문 섹션 (메인)
│   └── section1.xml     # 추가 섹션 (선택)
├── BinData/             # 이미지, 첨부 파일
└── settings.xml         # 문서 설정 (페이지, 스타일)
```

---

## 7. 연동 스크립트

```bash
# 기본 템플릿으로 HWPX 생성
python scripts/hwpx/create_hwpx.py \
  --template templates/hwpx/base.md \
  --output 문서.hwpx \
  --title "문서 제목"
```

---

## 8. 변수 플레이스홀더

기본 템플릿에서 사용 가능한 변수:

| 변수 | 설명 | 기본값 |
|------|------|--------|
| `{{문서제목}}` | 문서 제목 | (필수) |
| `{{작성자}}` | 작성자명 | - |
| `{{작성일}}` | 작성 날짜 | 오늘 날짜 |
| `{{버전}}` | 문서 버전 | 1.0 |
| `{{기관명}}` | 소속 기관명 | - |

---

*base.md — HWPX 기본 템플릿 스펙 v1.0.0*
