@litfamily/litgrok 1.0.13 → 1.0.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.grok/hooks/auto-handoff-gate.mjs +15 -2
- package/.grok/rules/00-litgrok.md +1 -1
- package/.grok/skills/frontend-ui-ux/THIRD-PARTY-NOTICE.txt +0 -5
- package/.grok/skills/frontend-ui-ux/references/slop-register.md +4 -4
- package/.grok/skills/frontend-ui-ux/scripts/import-design-intelligence.mjs +1 -1
- package/.grok/skills/lit-docx/SKILL.md +59 -11
- package/.grok/skills/lit-docx/examples/01-report-ko.md +137 -0
- package/.grok/skills/lit-docx/examples/02-brief-ko.md +82 -0
- package/.grok/skills/lit-docx/examples/03-manual-ko.md +118 -0
- package/.grok/skills/lit-docx/examples/04-proposal-ko.md +92 -0
- package/.grok/skills/lit-docx/examples/05-memo-en.md +42 -0
- package/.grok/skills/lit-docx/examples/06-journal-en.md +90 -0
- package/.grok/skills/lit-docx/examples/07-report-en.md +103 -0
- package/.grok/skills/lit-docx/examples/08-proposal-en.md +90 -0
- package/.grok/skills/lit-docx/examples/09-memo-ko.md +41 -0
- package/.grok/skills/lit-docx/references/components.md +151 -0
- package/.grok/skills/lit-docx/references/direction-step.md +129 -0
- package/.grok/skills/lit-docx/references/page-composition.md +129 -0
- package/.grok/skills/lit-docx/references/tonalities/brief.md +98 -0
- package/.grok/skills/lit-docx/references/tonalities/journal.md +100 -0
- package/.grok/skills/lit-docx/references/tonalities/manual.md +107 -0
- package/.grok/skills/lit-docx/references/tonalities/memo.md +95 -0
- package/.grok/skills/lit-docx/references/tonalities/proposal.md +105 -0
- package/.grok/skills/lit-docx/references/tonalities/report.md +114 -0
- package/.grok/skills/lit-docx/scripts/convert_md_to_docx.py +394 -51
- package/.grok/skills/lit-docx/scripts/docx_design.py +2446 -0
- package/.grok/skills/lit-docx/scripts/docx_gate.py +203 -0
- package/.grok/skills/lit-docx/scripts/docx_layout.py +959 -0
- package/.grok/skills/lit-docx/scripts/run.mjs +3 -2
- package/.grok/skills/lit-docx/scripts/slop_lint.py +63 -17
- package/.grok/skills/lit-docx/templates/tonalities/brief.yaml +29 -0
- package/.grok/skills/lit-docx/templates/tonalities/journal.yaml +26 -0
- package/.grok/skills/lit-docx/templates/tonalities/manual.yaml +27 -0
- package/.grok/skills/lit-docx/templates/tonalities/memo.yaml +27 -0
- package/.grok/skills/lit-docx/templates/tonalities/proposal.yaml +27 -0
- package/.grok/skills/lit-docx/templates/tonalities/report.yaml +27 -0
- package/.grok/skills/lit-pptx/NOTICE.md +1 -1
- package/.grok/skills/lit-pptx/SKILL.md +70 -14
- package/.grok/skills/lit-pptx/agents/analyst.md +1 -1
- package/.grok/skills/lit-pptx/agents/thesis.md +2 -2
- package/.grok/skills/lit-pptx/examples/01-pitch-signal-ko.md +175 -0
- package/.grok/skills/lit-pptx/examples/02-business-review-ledger-ko.md +199 -0
- package/.grok/skills/lit-pptx/examples/03-research-talk-paper-en.md +177 -0
- package/.grok/skills/lit-pptx/examples/04-lecture-chalk-ko.md +176 -0
- package/.grok/skills/lit-pptx/examples/05-data-review-night-en.md +221 -0
- package/.grok/skills/lit-pptx/examples/06-image-led-atlas-en.md +143 -0
- package/.grok/skills/lit-pptx/examples/07-briefing-gazette-ko.md +192 -0
- package/.grok/skills/lit-pptx/examples/08-status-update-ledger-en.md +168 -0
- package/.grok/skills/lit-pptx/examples/09-pitch-studio-en.md +157 -0
- package/.grok/skills/lit-pptx/examples/10-image-led-studio-ko.md +175 -0
- package/.grok/skills/lit-pptx/examples/11-business-review-night-en.md +181 -0
- package/.grok/skills/lit-pptx/examples/12-status-update-gazette-ko.md +199 -0
- package/.grok/skills/lit-pptx/pretendard-font/public/static/Pretendard-Bold.otf +0 -0
- package/.grok/skills/lit-pptx/pretendard-font/public/static/Pretendard-Regular.otf +0 -0
- package/.grok/skills/lit-pptx/references/density-and-fill.md +155 -0
- package/.grok/skills/lit-pptx/references/direction-step.md +211 -0
- package/.grok/skills/lit-pptx/references/layout-families.md +193 -0
- package/.grok/skills/lit-pptx/references/title-treatments.md +134 -0
- package/.grok/skills/lit-pptx/references/tonalities/atlas.md +124 -0
- package/.grok/skills/lit-pptx/references/tonalities/chalk.md +135 -0
- package/.grok/skills/lit-pptx/references/tonalities/gazette.md +127 -0
- package/.grok/skills/lit-pptx/references/tonalities/ledger.md +134 -0
- package/.grok/skills/lit-pptx/references/tonalities/night.md +132 -0
- package/.grok/skills/lit-pptx/references/tonalities/paper.md +127 -0
- package/.grok/skills/lit-pptx/references/tonalities/signal.md +118 -0
- package/.grok/skills/lit-pptx/references/tonalities/studio.md +123 -0
- package/.grok/skills/lit-pptx/scripts/compile-deck.js +65 -17
- package/.grok/skills/lit-pptx/scripts/craft_extras.py +82 -18
- package/.grok/skills/lit-pptx/scripts/deck_output.py +598 -0
- package/.grok/skills/lit-pptx/scripts/embed_fonts.py +1 -1
- package/.grok/skills/lit-pptx/scripts/inventory.py +6 -2
- package/.grok/skills/lit-pptx/scripts/lib/directive-parser.js +2 -2
- package/.grok/skills/lit-pptx/scripts/lib/grid-resolver.js +521 -0
- package/.grok/skills/lit-pptx/scripts/lib/layout-resolver.js +401 -16
- package/.grok/skills/lit-pptx/scripts/lib/markdown-loader.js +6 -4
- package/.grok/skills/lit-pptx/scripts/lib/render-adapter-html.js +2 -2
- package/.grok/skills/lit-pptx/scripts/lib/render-adapter-pptx.js +500 -126
- package/.grok/skills/lit-pptx/scripts/lib/render-pack.js +3558 -0
- package/.grok/skills/lit-pptx/scripts/lib/slide-ast.js +54 -6
- package/.grok/skills/lit-pptx/scripts/lib/template-registry.js +335 -11
- package/.grok/skills/lit-pptx/scripts/qa_deck.py +43 -10
- package/.grok/skills/lit-pptx/scripts/run.mjs +3 -2
- package/.grok/skills/lit-pptx/scripts/validate_pptx.py +17 -5
- package/.grok/skills/lit-pptx/templates/boilerplate_professional.css +6 -6
- package/.grok/skills/lit-pptx/templates/enrolled/AZURE-A2Z/layout-mapping.yaml +1 -1
- package/.grok/skills/lit-pptx/templates/enrolled/AZURE-A2Z/template.yaml +4 -1
- package/.grok/skills/lit-pptx/templates/enrolled/AZURE-PRO/layout-mapping.yaml +1 -1
- package/.grok/skills/lit-pptx/templates/enrolled/AZURE-PRO/template.yaml +4 -1
- package/.grok/skills/lit-pptx/templates/tonalities/atlas/pack.yaml +99 -0
- package/.grok/skills/lit-pptx/templates/tonalities/chalk/pack.yaml +104 -0
- package/.grok/skills/lit-pptx/templates/tonalities/gazette/pack.yaml +99 -0
- package/.grok/skills/lit-pptx/templates/tonalities/ledger/pack.yaml +100 -0
- package/.grok/skills/lit-pptx/templates/tonalities/night/pack.yaml +100 -0
- package/.grok/skills/lit-pptx/templates/tonalities/paper/pack.yaml +105 -0
- package/.grok/skills/lit-pptx/templates/tonalities/signal/pack.yaml +101 -0
- package/.grok/skills/lit-pptx/templates/tonalities/studio/pack.yaml +99 -0
- package/.grok/skills/lit-typographic-motion/THIRD_PARTY_NOTICES +1 -1
- package/.grok/skills/lit-typographic-motion/fonts/pins.json +6 -6
- package/.grok/skills/lit-typographic-motion/references/runtime.md +1 -1
- package/.grok/skills/lit-typographic-motion/references/style-bible.md +2 -2
- package/.grok/skills/lit-typographic-motion/references/type-craft.md +2 -2
- package/.grok/skills/lit-typographic-motion/scripts/lib/gate.mjs +1 -1
- package/.grok/skills/litgrok/SKILL.md +1 -1
- package/.grok-plugin/plugin.json +1 -1
- package/CHANGELOG.md +11 -0
- package/README.md +9 -9
- package/README_ko-KR.md +9 -9
- package/docs/assets/readme/badge-version.svg +1 -1
- package/docs/reference.md +1 -1
- package/docs/reference_ko-KR.md +1 -1
- package/package.json +1 -1
- package/plugin.json +1 -1
- package/.grok/skills/lit-pptx/pretendard-font/public/static/PretendardGOV-Bold.otf +0 -0
- package/.grok/skills/lit-pptx/pretendard-font/public/static/PretendardGOV-Regular.otf +0 -0
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
# Choosing a tonality
|
|
2
|
+
|
|
3
|
+
A tonality is a page design chosen per document. LitGrok's `lit-docx` skill ships six of them as data packs in `.grok/skills/lit-docx/templates/tonalities/`: `report`, `brief`, `manual`, `proposal`, `memo` and `journal`. They share one restrained look (near-black ink, booktabs tables, Pretendard, A4) and differ in structure: what stands on page 1, how the summary is set, whether and how headings are numbered, which page components the document may use, and what the running head carries. This file explains how to pick one before writing the source, how to state the choice, and when not to pick a tonality at all.
|
|
4
|
+
|
|
5
|
+
The choice is made once per document, before the Markdown is written, because each tonality expects a different source shape. A Brief needs a first section of short paragraphs that open with their conclusion; a Manual needs numbered steps; a Memo needs a To / From / Subject line. Converting a Report source with `tonality: Memo` produces a valid file, but not a memo.
|
|
6
|
+
|
|
7
|
+
## Who decides
|
|
8
|
+
|
|
9
|
+
The order of authority is fixed.
|
|
10
|
+
|
|
11
|
+
1. A tonality, publisher or font the user names wins. "Make it a brief", "ACS format", "two columns like a newsletter" settle the question.
|
|
12
|
+
2. A journal submission, or a named publisher, goes to the publisher path (`--publisher elsevier|acs|ieee|nature|korean-generic`), never to a tonality. The two are mutually exclusive: the converter refuses `--tonality` together with `--publisher`, and refuses frontmatter `tonality:` on a publisher run.
|
|
13
|
+
3. Otherwise the agent chooses, from the document type first and the source second.
|
|
14
|
+
|
|
15
|
+
A bare request ("lit, 보고서 하나 만들어 줘", "write me a project report") asks nothing about design. Pick the tonality, build the document, and say in the reply which one was used and which two were the alternatives. A question about tonality before any output is a wasted turn: the user can react to a finished page far faster than to a menu.
|
|
16
|
+
|
|
17
|
+
## Start from the document type
|
|
18
|
+
|
|
19
|
+
Map the request to a type, then take the first tonality of its row. The other two in the row are the alternatives you name in the reply.
|
|
20
|
+
|
|
21
|
+
| Document type and the words that signal it | First choice | Alternatives |
|
|
22
|
+
|---|---|---|
|
|
23
|
+
| Results, project report, analysis, quarterly review (보고서, 결과 보고, 분석, 실적) | Report | Brief, Manual |
|
|
24
|
+
| Briefing for one decision maker, one to three pages (개조식, 현황 보고, 검토 보고, 보고 자료) | Brief | Memo, Report |
|
|
25
|
+
| Guide, procedure, operating manual, onboarding (가이드, 매뉴얼, 절차서, 운영 지침) | Manual | Report, Brief |
|
|
26
|
+
| Proposal, plan, pitch, funding request as a document (제안서, 기획서, 계획서, 사업 계획) | Proposal | Report, Brief |
|
|
27
|
+
| Notice, internal memo, short decision request, letter (메모, 공지, 안내문, 협조 요청) | Memo | Brief, Report |
|
|
28
|
+
| Essay, newsletter, white paper, research summary not bound for a journal | Journal | Report, Proposal |
|
|
29
|
+
| Manuscript for a named journal | publisher profile | none |
|
|
30
|
+
|
|
31
|
+
Some requests carry two types. "A proposal with last year's results" is still a Proposal: the results are evidence inside it. "A report that asks for a budget" is a Report whose last section is a request; it becomes a Proposal only when the request is the reason the document exists.
|
|
32
|
+
|
|
33
|
+
## Let the source reorder the row
|
|
34
|
+
|
|
35
|
+
When the user supplies notes, data or a draft, read it before choosing. Signals in the material can move a different member of the same row to the front. They never add a tonality from outside the row.
|
|
36
|
+
|
|
37
|
+
| Signal in the material | Effect on the order |
|
|
38
|
+
|---|---|
|
|
39
|
+
| Four or more tables, or tables make up a third of the blocks | Report or Manual first |
|
|
40
|
+
| Under about 900 words, or "one page" / "두 쪽 이내" in the brief | Memo or Brief first |
|
|
41
|
+
| Numbered procedures, warnings, checklists | Manual first |
|
|
42
|
+
| English long-form prose with few tables | Journal first |
|
|
43
|
+
| A decision or approval is the point of the document | Brief (short) or Proposal (with budget) first |
|
|
44
|
+
| Many images supplied by the user | Proposal or Journal first |
|
|
45
|
+
|
|
46
|
+
Length matters most at the edges. A Memo that grows past two pages has stopped being a memo, and a Report of one and a half pages looks empty under its title block and contents logic. When the material and the type disagree, follow the material and say why.
|
|
47
|
+
|
|
48
|
+
## The structure each tonality sets
|
|
49
|
+
|
|
50
|
+
Keep this table in mind while choosing; it is what the reader will see.
|
|
51
|
+
|
|
52
|
+
| Tonality | Page 1 | Summary | Headings | Components allowed | Running head |
|
|
53
|
+
|---|---|---|---|---|---|
|
|
54
|
+
| Report | masthead title block, contents from about five pages | prose, optional key-figure strip | Korean Ⅰ. / 1. / 가., English 1 / 1.1 | key figures, callout, columns | footer: short title left, folio right |
|
|
55
|
+
| Brief | compact masthead, the decision box straight under it | four numbered points ①-④, bold lead sentence each | unnumbered, hairline above each section | one callout, columns | footer: folio right |
|
|
56
|
+
| Manual | title over a document-control block, contents from about five pages | prose | 1 / 1.1 / 1.1.1 | callout (warning), sidebar, columns | header: short title; footer: folio right |
|
|
57
|
+
| Proposal | a typographic cover page, body from page 2 | prose with one key-figure strip | unnumbered | key figures, one callout, columns | footer: folio centred |
|
|
58
|
+
| Memo | label, subject as title, To / From / Date / Subject rows | prose | unnumbered | none | footer: folio right from page 2 |
|
|
59
|
+
| Journal | masthead with authors, affiliations, abstract, keywords; body in two columns | abstract | 1 / 1.1 | callout | header: short title left, folio right |
|
|
60
|
+
|
|
61
|
+
## Write the direction card
|
|
62
|
+
|
|
63
|
+
Before writing the source, write a short direction card for yourself and keep it in the build notes beside the Markdown (never inside the document). It forces the choice to be explicit and gives the reply its one line about design.
|
|
64
|
+
|
|
65
|
+
```text
|
|
66
|
+
Document 사내 메신저 전환 검토 보고 (decision briefing, 2 pages)
|
|
67
|
+
Reader 경영위원회 위원장, reads the first page only
|
|
68
|
+
Tonality Brief, because one decision is requested and the reader wants the conclusion first
|
|
69
|
+
Alternatives Memo (if the budget table is dropped), Report (if the alternatives need full analysis)
|
|
70
|
+
Dials density 9, variance 3 (pack defaults)
|
|
71
|
+
Page 1 masthead: kicker "검토 보고", date, title, subtitle, byline, notice
|
|
72
|
+
Components callout kind=key "결정 요청" (the decision); nothing else
|
|
73
|
+
Numbers sample figures labelled (예시); notice in frontmatter
|
|
74
|
+
Wrong if the reader needs the analysis behind each option to decide
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
Every component in the card needs a one-line purpose. A component without one is dropped before writing, not after the gate complains. The "wrong if" line is the honest test: when it turns out to be true while drafting, switch to the alternative and rewrite the card.
|
|
78
|
+
|
|
79
|
+
## Rules every card carries
|
|
80
|
+
|
|
81
|
+
These hold whatever tonality is chosen, and the gate checks most of them.
|
|
82
|
+
|
|
83
|
+
- Titles, subtitles and headings are noun-phrase labels. Korean labels never end in a sentence ending (-다, -니다, -요, -죠) or a nominalised claim (-음, -함, -됨): write "1년 운영 결과", not "목표를 달성함". English labels have no finite verb and no closing full stop: "Conversion by feed rate", not "Conversion rose with feed rate." The finding belongs in the first sentence under the heading.
|
|
84
|
+
- Numbers are stated at their real size. A key figure carries its label and a basis line (period and source). No rounding up, no "up to", no display-size numerals.
|
|
85
|
+
- Invented values are labelled. Frontmatter `notice:` carries `"예시 데이터: 실제 수치로 바꿔 주세요"` or `"Sample data: replace with real figures"` (a colon, never a spaced dash), and figures in key-figure labels and table captions carry `(예시)` / `(sample)`.
|
|
86
|
+
- Pretendard everywhere; Journal sets Latin body text in Times New Roman and keeps Pretendard for Hangul and headings.
|
|
87
|
+
- Korean dates in the text read `2026. 10. 5.` or `2026년 10월 5일`. The converter rewrites an ISO date in Korean Markdown, but write the Korean form yourself so the source reads correctly too.
|
|
88
|
+
|
|
89
|
+
## Dials
|
|
90
|
+
|
|
91
|
+
Each pack has two dials, `density` and `variance`, from 1 to 10. Density sets margins, body size and leading. Variance is validated and printed on the converter's last line, but in the restrained packs it changes nothing on the page; the component budget is fixed by the pack. Leave both at the pack value unless the user asks for a looser or tighter page. Override them with `--density 7` on the command line or `density: 7` in frontmatter. A density under 8 widens the margins (26 mm sides at 8, 27 mm at 6) and opens the leading a step.
|
|
92
|
+
|
|
93
|
+
## Build and check
|
|
94
|
+
|
|
95
|
+
```bash
|
|
96
|
+
node .grok/skills/lit-docx/scripts/run.mjs convert_md_to_docx.py brief.md brief.docx
|
|
97
|
+
node .grok/skills/lit-docx/scripts/run.mjs docx_gate.py brief.docx --source brief.md --layout
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
The converter reads `tonality:` from frontmatter, or `--tonality brief` (any case). Its last line names the tonality, the dials and the detected locale; check that line before anything else. The gate exits 0 only when the package, content, prose lint and page checks all pass; `--layout` renders through LibreOffice and adds the page checks. Fix a finding in the source, never by switching tonality to dodge it.
|
|
101
|
+
|
|
102
|
+
## Comparing directions
|
|
103
|
+
|
|
104
|
+
When the user asks to see options ("두세 가지 스타일로 보여 줘", "compare a report and a brief version"), build the same source in two or three tonalities from the same row. Keep one source where you can: a directive the tonality does not use falls back to plain text, so a Report source converts as a Brief without edits. Then check that the versions really differ:
|
|
105
|
+
|
|
106
|
+
```bash
|
|
107
|
+
node .grok/skills/lit-docx/scripts/run.mjs convert_md_to_docx.py plan.md plan-report.docx --tonality report
|
|
108
|
+
node .grok/skills/lit-docx/scripts/run.mjs convert_md_to_docx.py plan.md plan-brief.docx --tonality brief
|
|
109
|
+
node .grok/skills/lit-docx/scripts/run.mjs docx_gate.py plan-report.docx --source plan.md --layout --compare plan-brief.docx
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
`--compare` fails `tonality.structure` when two files differ in fewer than three of six features: title block, summary form, heading numbering, component set, running head, contents list. Show the first pages side by side, name what each version is good for, and let the user pick. Never compare more than three; the fourth option is always noise.
|
|
113
|
+
|
|
114
|
+
## Publisher profiles
|
|
115
|
+
|
|
116
|
+
A request that names a journal or a publisher style (Elsevier, ACS, IEEE, Nature, or the Korean generic manuscript profile) leaves the tonality system entirely. Use `--publisher <name>`, follow `references/journal_style_spec.md`, and run the gate with `--publisher <name> --kind manuscript`. The Journal tonality is for long-form reading that resembles a paper without being submitted anywhere; do not use it for a real submission, and do not use a publisher profile for an internal white paper.
|
|
117
|
+
|
|
118
|
+
## Saying it in the reply
|
|
119
|
+
|
|
120
|
+
One line is enough: the tonality used, the reason in a phrase, and the two alternatives. "Brief로 만들었습니다(결정 요청 한 건, 두 쪽). 분석을 더 길게 보시려면 Report, 예산표 없이 짧게는 Memo로 바꿀 수 있습니다." The direction card, gate JSON and page counts stay in the build notes unless the user asks for them.
|
|
121
|
+
|
|
122
|
+
## Failure patterns
|
|
123
|
+
|
|
124
|
+
- Choosing by mood ("this feels formal, use Report") instead of by document type and length.
|
|
125
|
+
- Picking Proposal because it has a cover page. The cover is a consequence of the type, not a reason to pick it.
|
|
126
|
+
- A Memo stretched to four pages, or a Brief whose first section is one long paragraph, so the ①-④ points never form.
|
|
127
|
+
- Adding components because the pack allows them. The budget is a ceiling.
|
|
128
|
+
- Asking the user to choose a tonality before showing anything.
|
|
129
|
+
- Using Journal for a submission, or a publisher profile for a newsletter.
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
# Page composition
|
|
2
|
+
|
|
3
|
+
This file describes the page a tonality builds, what the converter already does for you, and what the gate measures, so that a source can be written to land well on A4 the first time. It applies to the six tonalities only; publisher profiles keep their own geometry from `templates/registry.yaml`.
|
|
4
|
+
|
|
5
|
+
The governing idea is restraint. A printed report earns trust by looking like the work of a careful typesetter: one ink colour for text and headings, quiet steps between heading sizes, tables drawn with three rules, generous but even white space, and furniture that stays out of the way. Most of the craft is in what the page leaves out.
|
|
6
|
+
|
|
7
|
+
## Page and text block
|
|
8
|
+
|
|
9
|
+
Every tonality sets A4 portrait. Margins follow the density dial, and the packs ship at density 8 or 9:
|
|
10
|
+
|
|
11
|
+
| Density | Top | Bottom | Left | Right | Text block width |
|
|
12
|
+
|---|---|---|---|---|---|
|
|
13
|
+
| 10 | 24 mm | 26 mm | 25 mm | 25 mm | 160 mm |
|
|
14
|
+
| 9 (Report, Brief, Manual, Memo, Journal) | 25 mm | 27 mm | 25 mm | 25 mm | 160 mm |
|
|
15
|
+
| 8 (Proposal) | 26 mm | 28 mm | 26 mm | 26 mm | 158 mm |
|
|
16
|
+
| 6 | 27 mm | 29 mm | 27 mm | 27 mm | 156 mm |
|
|
17
|
+
|
|
18
|
+
Side margins never fall under 25 mm and the bottom margin is always at least the top. Inside the block the converter works on a 12-column grid with a 4 mm gutter: the Proposal cover title spans 10 columns, its subtitle 9, a third-width sidebar 4, a half-width one 6, the label column of the memo and control blocks 2.
|
|
19
|
+
|
|
20
|
+
## Measure
|
|
21
|
+
|
|
22
|
+
At 10.5 pt Pretendard on a 160 mm block a Korean line holds about 43 syllables, close to the upper edge of comfortable reading; the prose lint reports this as an `OF-301` advisory, which is expected and not a failure. English lines run to roughly 90 characters at 10.5 pt, which is why Memo and Proposal set English body text at 11 pt and why Journal splits the block into two columns of about 77 mm with a 6 mm gap (around 50 characters each in Times New Roman). Do not try to shorten the measure by narrowing tables or adding columns; write shorter paragraphs instead.
|
|
23
|
+
|
|
24
|
+
## Type sizes
|
|
25
|
+
|
|
26
|
+
Body text is 10.5 pt in every pack, 11 pt for English in Memo and Proposal; the readable floor is 10.5 pt. Headings step up by about 1.2 times and never exceed 1.5 times the body:
|
|
27
|
+
|
|
28
|
+
| Pack | Title | h1 | h2 | h3 | Tables | Notes and sources | Running head |
|
|
29
|
+
|---|---|---|---|---|---|---|---|
|
|
30
|
+
| Report | 26.5 | 14.5 | 12.5 | 10.5 bold | 9.5 | 9 | 8.5 |
|
|
31
|
+
| Brief | 26.5 | 13.5 | 12 | 10.5 bold | 9.5 | 9 | 8.5 |
|
|
32
|
+
| Manual | 26.5 | 14 | 12 | 10.5 bold | 9.5 | 9 | 8.5 |
|
|
33
|
+
| Proposal (ko / en) | 28.5 / 29.5 | 14.5 / 15.5 | 12.5 / 13 | body bold | 9.5 / 10 | 9 / 9.5 | 8.5 / 9 |
|
|
34
|
+
| Memo (ko / en) | 19 / 20 | 12.5 / 13 | 11.5 / 12 | body bold | 9.5 / 10 | 9 / 9.5 | 8.5 / 9 |
|
|
35
|
+
| Journal | 26.5 | 13.5 | 12 | 10.5 bold | 9.5 | 9 | 8.5 |
|
|
36
|
+
|
|
37
|
+
Sizes are in points. All headings are near-black ink (#1A1A1A); levels are told apart by size, weight and the space above them, never by colour. Use at most three heading levels. Each heading keeps with the paragraph after it, and a short first paragraph keeps with the one after that, so a heading always carries at least two lines of its section.
|
|
38
|
+
|
|
39
|
+
## Leading
|
|
40
|
+
|
|
41
|
+
Leading is set by measurement, not by Word's "single" label. A single line of Pretendard is not 1.0 em: on rendered pages it measured 1.55 em in Word and 1.51 em in LibreOffice, so the engine uses 1.53 em. Times New Roman's single line is about 1.15 em. The target pitch (baseline to baseline over the type size) depends on script and density:
|
|
42
|
+
|
|
43
|
+
| Density | Hangul pitch | Latin pitch |
|
|
44
|
+
|---|---|---|
|
|
45
|
+
| 8 to 10 | 175 % | 133 % |
|
|
46
|
+
| 5 to 7 | 180 % | 137 % |
|
|
47
|
+
| 1 to 4 | 185 % | 140 % |
|
|
48
|
+
|
|
49
|
+
The Word multiple written into the file is the pitch divided by the face's single line: 1.75 / 1.53 = 1.144 for Korean text, 1.33 / 1.53 = 0.869 for English in Pretendard, 1.33 / 1.15 = 1.157 for Journal's Times body. If you ever measure a render, compare baseline distances, not the number in Word's paragraph dialog. Paragraphs are separated by space after, never by space and a first-line indent together.
|
|
50
|
+
|
|
51
|
+
## Alignment and Korean line breaking
|
|
52
|
+
|
|
53
|
+
Korean body text is justified in Report, Brief, Memo and Proposal; English body text stays ragged right everywhere, and Journal and Manual are ragged in both languages. Every paragraph carries the Korean line-breaking settings (word wrap and kinsoku on, the language marked ko-KR), so Microsoft Word breaks Hangul between words (어절) and keeps closing punctuation off the start of a line. LibreOffice ignores the word-wrap setting and breaks Hangul body text between syllables; a LibreOffice preview therefore shows breaks a Word reader will not see. Titles and headings do not depend on the renderer: the converter breaks them between words itself, into at most three lines kept as even as the words allow, and steps the size down if a word would not fit or a fourth line would be needed. The gate fails `heading.wrap` and `title.lines` if that ever goes wrong.
|
|
54
|
+
|
|
55
|
+
Hangul is never set in italic; emphasis is bold. Korean lists use a plain dash, and a list of one item loses its bullet.
|
|
56
|
+
|
|
57
|
+
## Headings and numbering
|
|
58
|
+
|
|
59
|
+
| Scheme | Used by | Form |
|
|
60
|
+
|---|---|---|
|
|
61
|
+
| Korean institute order | Report in Korean | Ⅰ. 요약 / 1. 설치 규모 / 가. 세부 항목, one space after the number |
|
|
62
|
+
| Decimal | Report in English, Manual, Journal | 1 / 1.1 / 1.1.1, hung so the heading texts of a level line up |
|
|
63
|
+
| None | Brief, Proposal, Memo | Brief opens each section under a full-width hairline |
|
|
64
|
+
|
|
65
|
+
Numbers are added by the converter; never type them into the Markdown heading. A heading whose parent level is missing stays unnumbered, and back matter (References, 참고문헌, Acknowledgements, 감사의 글) is never numbered. Open the document with a `#` heading and never skip a level downward (`heading.order`). Cross-references in the text ("4장의 조치", "Section 3.3") must match the numbers the converter will assign, so count them before writing.
|
|
66
|
+
|
|
67
|
+
## Tables
|
|
68
|
+
|
|
69
|
+
Every data table is booktabs: a 1 pt rule above and below, 0.5 pt under the header row, no vertical rules, no fills, no zebra stripes. The header is bold ink; a row starting with 합계, 총계, 소계, 계, Total or Sum is bold under its own 0.5 pt rule. Numeric columns are right-aligned in tabular figures, and no column is narrower than its longest word. A text column that wraps while the other columns hold their longest cell with room to spare takes that room, so it wraps onto fewer lines. Negative figures take the minus sign (−), never a hyphen, in Korean tables too. A sentence right above a table without a caption keeps 6 pt under itself so the header rule never touches it; a component box under a paragraph stands 6 pt clear in the same way. Under a publisher profile the paragraph after a table stands three quarters of a body line clear.
|
|
70
|
+
|
|
71
|
+
- Caption above, as a plain line: `표 1. 제목 (예시)` becomes `<표 1> 제목 (예시)`; `Table 1. Title (sample)` keeps `Table 1.` bold.
|
|
72
|
+
- Units: in Korean tables, when every header cell after the first ends in the same unit in brackets (`2025 (억 원)`, `2026 (억 원)`), the unit moves to one `(단위: 억 원)` line right-aligned above the table. Mixed units stay in their headers.
|
|
73
|
+
- Sources and notes under the table: `주:` first, then `자료:` in Korean; `Note:` then `Source:` in English. They keep with the table.
|
|
74
|
+
- Wide tables in Journal: a table of more than three columns is set across both columns with its caption; narrower tables take one column's width.
|
|
75
|
+
|
|
76
|
+
A table that fits on one page is kept whole with its caption. In a tonality run a long table (a header and six or more body rows) may break between rows, repeating its header, when moving it whole would leave the page under 0.75 filled; at least three body rows stand on each side. Plan tables so most fit in half a page; split a fifteen-row table into two tables with their own captions rather than relying on the break.
|
|
77
|
+
|
|
78
|
+
## Figures
|
|
79
|
+
|
|
80
|
+
The examples in this skill carry no pictures, but a figure the user supplies is sized to the text width and capped in height by the pack (0.40 of the frame in Brief, Memo and Journal, 0.45 in Report and Manual, 0.60 in Proposal). The paragraph holding it is single spaced so the image is never clipped. Korean figure captions read `[그림 1] 제목`, English `Figure 1. Title`; the caption stays on the figure's page (`figure.split`).
|
|
81
|
+
|
|
82
|
+
## Page 1 and covers
|
|
83
|
+
|
|
84
|
+
Five of the six tonalities open with a title block on page 1 and the body directly below it. Only Proposal has a cover page, and it is typographic: kicker, the title left-aligned in the upper third, one short rule in the accent, subtitle and lead, with the byline, date and notice at the foot. No colour block, no tiles, no photograph. The gate fails `cover.block` if filled shapes cover more than a quarter of a cover page.
|
|
85
|
+
|
|
86
|
+
The sample-data notice from frontmatter `notice:` appears once: in the title block, or at the foot of the cover. It is never repeated in headers.
|
|
87
|
+
|
|
88
|
+
Report and Manual add a short contents list (each h1, dotted leader, page number) after the title block when the source is long enough for about five pages.
|
|
89
|
+
|
|
90
|
+
## Running heads and folios
|
|
91
|
+
|
|
92
|
+
Furniture is set at about 82 % of the body size, regular weight, in the muted ink (#555555). No running head or folio appears on page 1 of a title-block document or on a cover page.
|
|
93
|
+
|
|
94
|
+
| Pack | Header | Footer |
|
|
95
|
+
|---|---|---|
|
|
96
|
+
| Report | none | short title left, folio right |
|
|
97
|
+
| Brief | none | folio right |
|
|
98
|
+
| Manual | short title | folio right |
|
|
99
|
+
| Proposal | none | folio centred, body numbered from 1 after the cover |
|
|
100
|
+
| Memo | none | folio right |
|
|
101
|
+
| Journal | short title left, folio right | none |
|
|
102
|
+
|
|
103
|
+
The running title comes from `short_title:`; without it the title is cut at about 40 characters on a word boundary. Give every document over two pages a `short_title`.
|
|
104
|
+
|
|
105
|
+
## Page fill and splits
|
|
106
|
+
|
|
107
|
+
The gate renders the document and measures each page.
|
|
108
|
+
|
|
109
|
+
- `fill.page`: every body page except the cover and the last is filled to at least 0.35 of its frame. Medians around 0.8 are normal.
|
|
110
|
+
- `heading.stranded`: no page ends on a heading.
|
|
111
|
+
- `table.split` and `figure.split`: as above; component boxes never split.
|
|
112
|
+
- `page.spill`: a two-page document fills its second page to at least 0.4 of the frame, and no document ends on a page filled under an eighth. A source of about one page by the converter's estimate is set with tight spacing in any tonality, as a memo is, so a page of text does not spill a few lines over; a closing paragraph of up to about four lines keeps the block before it company.
|
|
113
|
+
- `list.split`: a list of up to six items stands on one page and in one column. The converter keeps every item but the last with the next, and a lead-in of a line or two right before the list with the list; a publisher run does the same. In a two-column body a list of five or six items may break once: the lead-in keeps with the first two items and the last two items stay together, so the block no longer jumps to the next column and leaves a third of a column empty.
|
|
114
|
+
- `heading.column`: in a two-column body a heading never ends a column while its first lines open the next one. A `Source:` or `자료:` line under a page-wide table spans the page with the table, so the column section after it opens with the heading and its text.
|
|
115
|
+
- `columns.balance`: in a two-column body no column stops more than a quarter of the frame short (under 0.75) beside one that runs to the foot, and the last page sets its two columns to about the same depth. The converter ends the column body with a continuous section break, which balances the last page.
|
|
116
|
+
- The last section of a single-column document, when it has no table or picture and comes to about twelve lines or fewer, keeps whole: its paragraph goes to the last page with its list instead of leaving the list and a closing line alone there.
|
|
117
|
+
- `heading.apart`: a heading whose short lead sentence opens a table of up to eight body rows stands on the page where the table starts. The converter keeps the heading, the sentence, any caption or units line and the table together in a single-column body.
|
|
118
|
+
- A section that opens under a hairline right after a ruled box draws no second rule; the box's own bottom rule parts the two.
|
|
119
|
+
- A final page holding two or three lines is legal but looks careless. When the last page is under about 0.15, trim a sentence or two, or merge a short closing paragraph upward; when a page in the middle is short because a table jumped, move the table below the paragraph that follows it or shorten the table.
|
|
120
|
+
|
|
121
|
+
The converter never forces a page break before a heading, so short pages come from blocks that refuse to split. The fix is always in the source: shorter tables, a paragraph moved, a component dropped.
|
|
122
|
+
|
|
123
|
+
## Numbers and dates on the page
|
|
124
|
+
|
|
125
|
+
Write Korean dates as `2026. 10. 5.` or `2026년 10월 5일`, never in ISO form; the gate fails `date.iso` on a Korean document that still holds one. A date at the start of a line would read as a numbered list, so start the line with a word. Keep one unit-spacing style per document (`312MWh` or `312 MWh`, not both), use `~` or an en dash for ranges, and avoid a spaced hyphen in prose, which the lint reads as a dash.
|
|
126
|
+
|
|
127
|
+
## Colour
|
|
128
|
+
|
|
129
|
+
One accent per pack at most (Report #1F3A5F, Brief #2D5A47, Manual #2E4A66, Proposal #6E2639; Memo and Journal none), on at most two element kinds: the title rule and the callout rules in Report, Brief and Proposal, the callout and sidebar rules in Manual. Everything else is ink and two greys. The gate fails `color.accent-kinds`, `heading.ink`, `table.fill` and `furniture.chip` when a document breaks this, which only happens if the source or a template is edited by hand.
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
# Brief
|
|
2
|
+
|
|
3
|
+
A briefing of one to three pages for a person who must decide something, written conclusion first. The decision request stands right under a compact title block, the summary is four numbered points that each open with a bold sentence, and the rest of the document is short, unnumbered sections in itemised form (개조식) with a table or two. It is the Korean 검토 보고 or 현황 보고 in a restrained print form.
|
|
4
|
+
|
|
5
|
+
Worked example: `examples/02-brief-ko.md` (3 pages).
|
|
6
|
+
|
|
7
|
+
## When it fits
|
|
8
|
+
|
|
9
|
+
- One decision, one reader or one committee, little time.
|
|
10
|
+
- The reader will read page 1 and skim the rest; everything needed to decide must be on page 1.
|
|
11
|
+
- The options can be compared in one table.
|
|
12
|
+
|
|
13
|
+
## When it is wrong
|
|
14
|
+
|
|
15
|
+
- The analysis itself is the product, or there are several findings of similar weight: use Report.
|
|
16
|
+
- There is nothing to decide, only something to announce: use Memo.
|
|
17
|
+
- The request needs a budget breakdown, schedule and evaluation plan to be credible: use Proposal.
|
|
18
|
+
- It runs past three pages. Cut it or move to Report; a long brief defeats its purpose.
|
|
19
|
+
|
|
20
|
+
## Structure that sets it apart
|
|
21
|
+
|
|
22
|
+
1. Masthead: kicker (검토 보고, 현황 보고, Briefing) and date on the series line, title, subtitle, byline, an accent rule, the notice. Use an empty `::: cover` body; a lead paragraph would push the decision box down.
|
|
23
|
+
2. The decision box, `::: callout kind=key title="결정 요청"`, moved by the converter to stand directly under the title block wherever it sits in the source. It states what is to be approved, by whom, by when, and the amount.
|
|
24
|
+
3. 요약 / Summary: up to four paragraphs, each turned into a numbered point ①-④. The converter makes the first sentence bold (up to the first `다.` or the first full stop) and hangs the point. So each paragraph opens with a short claim and continues with its evidence.
|
|
25
|
+
4. Unnumbered sections, each under a full-width hairline instead of a number: background, options compared, schedule and risks, budget. Write them as dash lists in 개조식, noun or `~함`/`~임` endings, one fact per item.
|
|
26
|
+
5. Only the folio at the foot, right-aligned, from page 2.
|
|
27
|
+
|
|
28
|
+
## Tokens from the pack
|
|
29
|
+
|
|
30
|
+
| Token | Value |
|
|
31
|
+
|---|---|
|
|
32
|
+
| Dials | density 9, variance 3 |
|
|
33
|
+
| Margins | 25 / 27 / 25 / 25 mm |
|
|
34
|
+
| Body | Pretendard 10.5 pt, Korean justified |
|
|
35
|
+
| Ramp | h1 1.3 (13.5 pt), h2 1.15 (12 pt), title 2.5 (26.5 pt) |
|
|
36
|
+
| Numbering | none; h1 opens under a hairline (`h1_rule: above`) |
|
|
37
|
+
| Title block | masthead, no contents |
|
|
38
|
+
| Summary | numbered points ①-④, `conclusion_first: true` |
|
|
39
|
+
| Running head | footer: folio right |
|
|
40
|
+
| Palette | ink #1A1A1A, muted #555555, line #8C8C8C, accent #2D5A47 |
|
|
41
|
+
| Accent on | title rule, callout rules |
|
|
42
|
+
| Components | callout (at most one), columns |
|
|
43
|
+
| Figures | at most 0.40 of the frame high |
|
|
44
|
+
|
|
45
|
+
## Components
|
|
46
|
+
|
|
47
|
+
One callout, and it is the decision box. If the source has a second callout it becomes a bold line and plain text. Columns are allowed for a genuine two-way comparison of similar length, but a table usually serves better. Key figures and sidebars are not part of this tonality; a `::: keyfigures` block turns into a bulleted list.
|
|
48
|
+
|
|
49
|
+
## Writing the source
|
|
50
|
+
|
|
51
|
+
- Write the 요약 paragraphs so that the first sentence alone is a complete answer: "안 2로 전환하면 3년간 1억 1,400만 원을 아낀다." The bold lead is cut at the first `다.`, so put no other sentence-ending before the point is made.
|
|
52
|
+
- Keep the first section to four paragraphs; a fifth stays unnumbered.
|
|
53
|
+
- In 개조식 sections, one line per fact, no nested lists. A list of one item loses its dash, so merge a lone item into the sentence above.
|
|
54
|
+
- Use headings that name the content ("대안 비교", "소요 예산"), not "검토 결과" or "기타".
|
|
55
|
+
- 개조식 endings belong to list items only. Headings stay noun phrases, and the 요약 points are full sentences.
|
|
56
|
+
|
|
57
|
+
## Do and avoid
|
|
58
|
+
|
|
59
|
+
| Do | Avoid |
|
|
60
|
+
|---|---|
|
|
61
|
+
| Put the amount and deadline in the decision box | A decision box that says "검토 바랍니다" without a decision |
|
|
62
|
+
| One options table with the same rows for each option | Three paragraphs describing three options |
|
|
63
|
+
| Label sample figures `(예시)` | A key-figure strip; it is not drawn here |
|
|
64
|
+
| Stop at three pages | A closing section that repeats the summary |
|
|
65
|
+
|
|
66
|
+
## Worked snippet
|
|
67
|
+
|
|
68
|
+
```markdown
|
|
69
|
+
---
|
|
70
|
+
title: 사내 메신저 전환 검토 보고
|
|
71
|
+
subtitle: 현행 계약 만료에 따른 대안 비교와 2027년 1분기 전환안
|
|
72
|
+
author: 정보전략팀
|
|
73
|
+
organization: 예시 공사
|
|
74
|
+
date: 2026-10-05
|
|
75
|
+
notice: "예시 데이터: 실제 수치로 바꿔 주세요"
|
|
76
|
+
tonality: Brief
|
|
77
|
+
---
|
|
78
|
+
|
|
79
|
+
::: cover variant=masthead kicker="검토 보고"
|
|
80
|
+
:::
|
|
81
|
+
|
|
82
|
+
::: callout kind=key title="결정 요청"
|
|
83
|
+
2027년 3월 말까지 그룹웨어 내장 메신저로 전환하는 안과 전환 비용 3,200만 원(예시)의 집행 승인을 요청한다.
|
|
84
|
+
:::
|
|
85
|
+
|
|
86
|
+
# 요약
|
|
87
|
+
|
|
88
|
+
안 2로 전환하면 3년간 1억 1,400만 원을 아낀다. 현행 메신저를 3년 더 쓰는 비용은 2억 400만 원이다.
|
|
89
|
+
|
|
90
|
+
기능 손실은 크지 않다. 대화, 파일 전송, 화상 통화가 전체 사용의 96%를 차지한다.
|
|
91
|
+
|
|
92
|
+
# 검토 배경
|
|
93
|
+
|
|
94
|
+
- 현행 계약 만료일 2027. 3. 31., 연장 시 사용료 연 18% 인상
|
|
95
|
+
- 두 메신저를 함께 쓰는 부서에서 업무 요청 누락 사례 반복
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
The two paragraphs under 요약 print as "① **안 2로 전환하면 3년간 1억 1,400만 원을 아낀다.** 현행 메신저를…" and "② **기능 손실은 크지 않다.** …". Each list line under 검토 배경 starts with a word, never with the date, so Markdown does not read it as a numbered list.
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
# Journal
|
|
2
|
+
|
|
3
|
+
Long-form reading in two columns: essays, newsletters, white papers and research summaries that are not being submitted to a named journal. It sits closest to the publisher profiles in look: a title block with authors, affiliations, abstract and keywords across the full width, then the body in two columns, decimal section numbers for cross-references, Latin body text in Times New Roman with Hangul and headings in Pretendard, ragged right, and the short title with the folio in the header.
|
|
4
|
+
|
|
5
|
+
Worked example: `examples/06-journal-en.md` (3 pages).
|
|
6
|
+
|
|
7
|
+
## When it fits
|
|
8
|
+
|
|
9
|
+
- The reader reads from start to finish, and the argument builds over several sections.
|
|
10
|
+
- Prose dominates; tables are few and narrow.
|
|
11
|
+
- The piece has named authors and benefits from an abstract a reader can stop after.
|
|
12
|
+
|
|
13
|
+
## When it is wrong
|
|
14
|
+
|
|
15
|
+
- It is going to a journal or conference: use the publisher path (`--publisher elsevier|acs|ieee|nature|korean-generic`) and its own rules.
|
|
16
|
+
- It is mainly tables and figures for managers: use Report.
|
|
17
|
+
- Its purpose is approval of money or a plan: use Proposal.
|
|
18
|
+
- It is short. A two-column body under about two pages looks like a flyer; use Memo or Report.
|
|
19
|
+
|
|
20
|
+
## Structure that sets it apart
|
|
21
|
+
|
|
22
|
+
1. Full-width title block: the date at the right of the series line (and a kicker at the left if the cover directive gives one), title, subtitle, author names, numbered affiliations, an optional corresponding e-mail, one ink rule, the notice, then 초록 / Abstract and 주요어 / Keywords from frontmatter.
|
|
23
|
+
2. The body switches to two columns of about 77 mm with a 6 mm gap after the title block. The first section break also makes the gate treat page 1 as an opening page, so its fill is not judged.
|
|
24
|
+
3. Decimal numbering 1 / 1.1, so the text can say "Section 3.3". Back matter (References, 참고문헌, Acknowledgements) stays unnumbered.
|
|
25
|
+
4. Tables of up to three columns sit in a column; wider tables and their captions span the page automatically.
|
|
26
|
+
5. A section on limits or open questions near the end, which this kind of reader expects.
|
|
27
|
+
|
|
28
|
+
## Tokens from the pack
|
|
29
|
+
|
|
30
|
+
| Token | Value |
|
|
31
|
+
|---|---|
|
|
32
|
+
| Dials | density 9, variance 6 |
|
|
33
|
+
| Margins | 25 / 27 / 25 / 25 mm |
|
|
34
|
+
| Body | Times New Roman 10.5 pt for Latin, Pretendard for Hangul and headings, ragged right |
|
|
35
|
+
| Leading | Latin pitch 133 % (Word multiple 1.157 for Times) |
|
|
36
|
+
| Ramp | h1 1.3 (13.5 pt), h2 1.15 (12 pt), title 2.5 (26.5 pt) |
|
|
37
|
+
| Numbering | decimal |
|
|
38
|
+
| Title block | masthead with authors, affiliations, abstract, keywords |
|
|
39
|
+
| Summary | prose (the abstract) |
|
|
40
|
+
| Running head | header: short title left, folio right |
|
|
41
|
+
| Palette | ink #1A1A1A, muted #555555, line #8C8C8C, no accent |
|
|
42
|
+
| Columns | 2, gap 6 mm |
|
|
43
|
+
| Components | callout |
|
|
44
|
+
| Figures | at most 0.40 of the frame high |
|
|
45
|
+
|
|
46
|
+
## Components
|
|
47
|
+
|
|
48
|
+
Only the callout, drawn with ink rules since the pack has no accent. Use it for a note on how to read the numbers, a definition, or a caveat; one in a three- or four-page piece is plenty. The two-column body counts as a component kind and so does the opening title block, so the gate's two-kind floor is met without adding anything. Key figures and sidebars become plain text here.
|
|
49
|
+
|
|
50
|
+
## Writing the source
|
|
51
|
+
|
|
52
|
+
- Frontmatter carries `authors` (a list of names with `affiliation` numbers), `affiliations` (a numbered mapping), `abstract`, `keywords` and optionally `corresponding_email`; see `references/frontmatter_schema.md`.
|
|
53
|
+
- Keep each top-level section to a few hundred words in English. The prose lint measures vocabulary variety and sentence-length spread per `#` section, and a single 900-word section is likely to trip `rule-10-lexical-diversity`.
|
|
54
|
+
- Avoid naming sections exactly "Introduction" or "Discussion" unless you cite sources there: the lint expects citations in sections with those names. "Background", "Findings" and "Limits of the study" read naturally and lint cleanly.
|
|
55
|
+
- Never invent references. If there are none, leave the section out.
|
|
56
|
+
- Write tables narrow (three columns or fewer) so they stay in the column; check that every cross-reference matches the numbering.
|
|
57
|
+
|
|
58
|
+
## Do and avoid
|
|
59
|
+
|
|
60
|
+
| Do | Avoid |
|
|
61
|
+
|---|---|
|
|
62
|
+
| An abstract that states the method, the main numbers and the main limit | An abstract that only says what the paper "explores" |
|
|
63
|
+
| Decimal cross-references that match the printed numbers | "As shown above" across columns |
|
|
64
|
+
| Narrow tables with a caption above | A six-column table that forces a full-width break on every page |
|
|
65
|
+
| A limits section in plain words | Hedging piled into every sentence |
|
|
66
|
+
|
|
67
|
+
## Worked snippet
|
|
68
|
+
|
|
69
|
+
```markdown
|
|
70
|
+
---
|
|
71
|
+
title: Reading on the morning train
|
|
72
|
+
subtitle: A two-week diary study of commuters on one suburban line
|
|
73
|
+
authors:
|
|
74
|
+
- { name: "Hana Seo", affiliation: 1 }
|
|
75
|
+
- { name: "Daniel Okafor", affiliation: 2 }
|
|
76
|
+
affiliations:
|
|
77
|
+
1: "Example Institute for Transport and Society"
|
|
78
|
+
2: "Example University, School of Information"
|
|
79
|
+
date: 2026-10-05
|
|
80
|
+
short_title: Reading on the morning train
|
|
81
|
+
notice: "Sample study: replace with real data"
|
|
82
|
+
abstract: "Forty-two commuters kept a diary of what they read on the train for ten working days."
|
|
83
|
+
keywords: [commuting, reading habits, diary study]
|
|
84
|
+
tonality: Journal
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
# Findings
|
|
88
|
+
|
|
89
|
+
## How much reading
|
|
90
|
+
|
|
91
|
+
Reading of some kind appeared on 634 of 761 trips (83 %).
|
|
92
|
+
|
|
93
|
+
Table 1. Reading on 761 morning trips (sample data)
|
|
94
|
+
|
|
95
|
+
| Type of reading | Trips | Share |
|
|
96
|
+
| --- | ---: | ---: |
|
|
97
|
+
| Any reading | 634 | 83 % |
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
"Findings" prints as "1 Findings" and "How much reading" as "1.1 How much reading"; the three-column table stays inside its column.
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
# Manual
|
|
2
|
+
|
|
3
|
+
A technical guide, procedure or operating manual that someone follows with the document open beside the task. It opens with the title over a document-control block, lists its contents when it runs to about five pages, numbers its sections 1 / 1.1 / 1.1.1, writes procedures as numbered steps, uses one warning style for every callout, and may set a narrow sidebar of definitions beside the text. The short title runs in the header so a loose printed page still says which manual it belongs to.
|
|
4
|
+
|
|
5
|
+
Worked example: `examples/03-manual-ko.md` (4 pages).
|
|
6
|
+
|
|
7
|
+
## When it fits
|
|
8
|
+
|
|
9
|
+
- The reader acts on the text: inspects, installs, operates, responds to an alarm.
|
|
10
|
+
- Steps have an order that matters, and some steps carry a hazard.
|
|
11
|
+
- The document is revised and reissued, so it needs an owner, an issue date and stable section numbers.
|
|
12
|
+
|
|
13
|
+
## When it is wrong
|
|
14
|
+
|
|
15
|
+
- The reader is deciding, not doing: use Brief or Report.
|
|
16
|
+
- It is a one-off notice of a changed procedure: use Memo, and reference the manual.
|
|
17
|
+
- It is mostly explanation with no steps: use Report.
|
|
18
|
+
|
|
19
|
+
## Structure that sets it apart
|
|
20
|
+
|
|
21
|
+
1. Title and subtitle, then the control block between two hairlines: 문서 (from `short_title`, else the title), 작성 부서 (`author`), 기관 (`organization`), 시행일 (`date`); in English Document, Owner, Organisation, Issued. The notice follows. No `::: cover` is needed; if you add one, its kicker stands alone on a line above the title (the date lives in the control block) and its body becomes a lead paragraph.
|
|
22
|
+
2. A contents list for longer manuals.
|
|
23
|
+
3. Section 1 states scope and responsibility: which equipment, which users, who does what, how often.
|
|
24
|
+
4. Procedure sections: a sentence of context, then an ordered list of steps, each a single action in the imperative. A step that needs a check names the expected value.
|
|
25
|
+
5. Warnings in a callout placed before the step they protect, not after.
|
|
26
|
+
6. Reference tables (schedules, limits, contacts) with numbered captions.
|
|
27
|
+
7. A closing section for faults, recovery or revision, so the manual ends on what to do when things go wrong.
|
|
28
|
+
|
|
29
|
+
## Tokens from the pack
|
|
30
|
+
|
|
31
|
+
| Token | Value |
|
|
32
|
+
|---|---|
|
|
33
|
+
| Dials | density 9, variance 6 |
|
|
34
|
+
| Margins | 25 / 27 / 25 / 25 mm |
|
|
35
|
+
| Body | Pretendard 10.5 pt, ragged right in both languages |
|
|
36
|
+
| Ramp | h1 1.35 (14 pt), h2 1.15 (12 pt), title 2.5 (26.5 pt) |
|
|
37
|
+
| Numbering | decimal 1 / 1.1 / 1.1.1 |
|
|
38
|
+
| Title block | `manual` (control block), contents on |
|
|
39
|
+
| Summary | prose |
|
|
40
|
+
| Running head | header: short title; footer: folio right |
|
|
41
|
+
| Palette | ink #1A1A1A, muted #555555, line #8C8C8C, accent #2E4A66 |
|
|
42
|
+
| Accent on | callout rules, sidebar rule |
|
|
43
|
+
| Components | callout, sidebar (third width, floated right), columns |
|
|
44
|
+
| Figures | at most 0.45 of the frame high |
|
|
45
|
+
|
|
46
|
+
## Components
|
|
47
|
+
|
|
48
|
+
- Callout: one style for every kind; use `kind=warning` for hazards and keep about one per four pages. When there are more warnings than the budget allows, the converter keeps the earliest ones as boxes and sets the rest as a bold title and text, which is still readable but no longer stands out, so choose the warnings that matter.
|
|
49
|
+
- Sidebar: definitions, tools required, or preconditions, in table-size text beside the opening paragraphs of a section. Give it at least as much running text beside it as it is tall, or it is set full width.
|
|
50
|
+
- Columns: rarely, for two parallel short procedures.
|
|
51
|
+
|
|
52
|
+
The control block counts as a component kind, so a four-page manual with one warning box already meets the two-kind floor.
|
|
53
|
+
|
|
54
|
+
## Writing the source
|
|
55
|
+
|
|
56
|
+
- Steps are `1.` lists; each starts with a verb in the reader's voice ("전원 스위치를 켜고…", "Open the valve…") and holds one action. Lists restart at 1 in every procedure.
|
|
57
|
+
- Put limits in the step: "면속도가 0.4~0.6m/s 범위 안에 있는지 읽는다", not "적정한지 확인한다".
|
|
58
|
+
- Cross-references use the numbers the converter assigns: "4장의 조치", "see 3.2". Count them before writing.
|
|
59
|
+
- Units in table headers; a table of limits gets a caption with `(예시)` when values are invented.
|
|
60
|
+
- No glyph markers (■, ▶, ✓) in headings or steps.
|
|
61
|
+
|
|
62
|
+
## Do and avoid
|
|
63
|
+
|
|
64
|
+
| Do | Avoid |
|
|
65
|
+
|---|---|
|
|
66
|
+
| Name the owner and issue date through frontmatter | A revision history table on page 1 |
|
|
67
|
+
| One action per step, expected value included | Steps that mix three actions and a warning |
|
|
68
|
+
| Warning before the step it protects | A box for every caution |
|
|
69
|
+
| End on fault handling and recovery | Ending on a summary of what was just described |
|
|
70
|
+
|
|
71
|
+
## Worked snippet
|
|
72
|
+
|
|
73
|
+
```markdown
|
|
74
|
+
---
|
|
75
|
+
title: 연구동 공용 흄후드 일상 점검 절차서
|
|
76
|
+
subtitle: 사용 전 점검, 월간 풍속 측정과 이상 시 조치
|
|
77
|
+
author: 연구지원팀 실험실안전파트
|
|
78
|
+
organization: 예시 연구원
|
|
79
|
+
date: 2026-10-05
|
|
80
|
+
short_title: 흄후드 일상 점검 절차서
|
|
81
|
+
notice: "예시 데이터: 실제 값으로 바꿔 주세요"
|
|
82
|
+
tonality: Manual
|
|
83
|
+
---
|
|
84
|
+
|
|
85
|
+
# 적용 범위
|
|
86
|
+
|
|
87
|
+
## 대상 설비와 사용자
|
|
88
|
+
|
|
89
|
+
이 절차서는 3층 공용 실험실의 흄후드 6대에 적용한다.
|
|
90
|
+
|
|
91
|
+
::: sidebar title="용어"
|
|
92
|
+
**면속도**: 새시 개구부를 지나 들어가는 공기의 평균 속도(m/s).
|
|
93
|
+
:::
|
|
94
|
+
|
|
95
|
+
흄후드는 실험 중 생기는 유해 증기를 옥상 배기구로 내보낸다. 이 기능은 면속도가 기준 범위 안에 있을 때만 유지된다.
|
|
96
|
+
|
|
97
|
+
# 사용 전 점검
|
|
98
|
+
|
|
99
|
+
::: callout kind=warning title="경보가 울릴 때"
|
|
100
|
+
작업을 멈추고 용기 뚜껑을 닫은 뒤 새시를 끝까지 내린다.
|
|
101
|
+
:::
|
|
102
|
+
|
|
103
|
+
1. 전원 스위치를 켜고 조명과 배기 팬이 함께 작동하는지 확인한다.
|
|
104
|
+
2. 표시창의 면속도가 0.4~0.6m/s 범위 안에 있는지 읽는다.
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
The headings print as "1 적용 범위", "1.1 대상 설비와 사용자" and "2 사용 전 점검"; the header of every page after the first reads "흄후드 일상 점검 절차서".
|