@litfamily/litopencode 1.0.16 → 1.0.17
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/CHANGELOG.md +7 -0
- package/README-Ko-KR.md +11 -11
- package/README.md +11 -11
- package/dist/activation-routing.js +1 -1
- package/dist/features.js +2 -2
- package/dist/skills.js +6 -4
- package/docs/assets/readme/badge-version.svg +1 -1
- package/docs/reference-Ko-KR.md +1 -1
- package/package.json +1 -1
- package/skills/frontend-ui-ux/data/THIRD-PARTY-NOTICE.txt +1 -3
- package/skills/lit-docx/SKILL.md +80 -19
- package/skills/lit-docx/references/components.md +253 -0
- package/skills/lit-docx/references/direction-step.md +234 -0
- package/skills/lit-docx/references/examples/01-report-ko.md +160 -0
- package/skills/lit-docx/references/examples/02-brief-ko.md +58 -0
- package/skills/lit-docx/references/examples/03-manual-ko.md +107 -0
- package/skills/lit-docx/references/examples/04-proposal-ko.md +93 -0
- package/skills/lit-docx/references/examples/05-memo-ko.md +42 -0
- package/skills/lit-docx/references/examples/06-journal-en.md +84 -0
- package/skills/lit-docx/references/examples/07-report-en.md +137 -0
- package/skills/lit-docx/references/examples/08-journal-ko.md +93 -0
- package/skills/lit-docx/references/examples/09-brief-en.md +64 -0
- package/skills/lit-docx/references/page-composition.md +306 -0
- package/skills/lit-docx/references/tonalities/brief.md +104 -0
- package/skills/lit-docx/references/tonalities/journal.md +101 -0
- package/skills/lit-docx/references/tonalities/manual.md +111 -0
- package/skills/lit-docx/references/tonalities/memo.md +105 -0
- package/skills/lit-docx/references/tonalities/proposal.md +101 -0
- package/skills/lit-docx/references/tonalities/report.md +126 -0
- package/skills/lit-docx/run.py +2 -1
- package/skills/lit-docx/scripts/convert_md_to_docx.py +384 -67
- package/skills/lit-docx/scripts/craft_docx.py +204 -1
- package/skills/lit-docx/scripts/docx_design.py +2445 -0
- package/skills/lit-docx/scripts/docx_layout.py +959 -0
- package/skills/lit-docx/scripts/slop_lint.py +23 -6
- package/skills/lit-docx/templates/tonalities/brief.yaml +29 -0
- package/skills/lit-docx/templates/tonalities/journal.yaml +26 -0
- package/skills/lit-docx/templates/tonalities/manual.yaml +27 -0
- package/skills/lit-docx/templates/tonalities/memo.yaml +27 -0
- package/skills/lit-docx/templates/tonalities/proposal.yaml +27 -0
- package/skills/lit-docx/templates/tonalities/report.yaml +27 -0
- package/skills/lit-pptx/NOTICE.md +1 -1
- package/skills/lit-pptx/SKILL.md +108 -19
- package/skills/lit-pptx/pretendard-font/public/static/Pretendard-Bold.otf +0 -0
- package/skills/lit-pptx/pretendard-font/public/static/Pretendard-Regular.otf +0 -0
- package/skills/lit-pptx/references/density-and-fill.md +283 -0
- package/skills/lit-pptx/references/direction-step.md +249 -0
- package/skills/lit-pptx/references/examples/01-ops-review-ledger-ko.md +173 -0
- package/skills/lit-pptx/references/examples/02-launch-pitch-signal-en.md +153 -0
- package/skills/lit-pptx/references/examples/03-field-survey-atlas-ko.md +120 -0
- package/skills/lit-pptx/references/examples/04-lecture-chalk-ko.md +132 -0
- package/skills/lit-pptx/references/examples/05-research-talk-paper-en.md +162 -0
- package/skills/lit-pptx/references/examples/06-policy-briefing-gazette-ko.md +176 -0
- package/skills/lit-pptx/references/examples/07-annual-story-studio-en.md +131 -0
- package/skills/lit-pptx/references/examples/08-reliability-keynote-night-en.md +182 -0
- package/skills/lit-pptx/references/examples/09-status-update-ledger-en.md +147 -0
- package/skills/lit-pptx/references/examples/10-investor-pitch-signal-ko.md +136 -0
- package/skills/lit-pptx/references/examples/11-forecast-review-night-ko.md +177 -0
- package/skills/lit-pptx/references/examples/12-exhibition-proposal-studio-ko.md +149 -0
- package/skills/lit-pptx/references/layout-families.md +470 -0
- package/skills/lit-pptx/references/title-treatments.md +271 -0
- package/skills/lit-pptx/references/tonalities/atlas.md +132 -0
- package/skills/lit-pptx/references/tonalities/chalk.md +132 -0
- package/skills/lit-pptx/references/tonalities/gazette.md +137 -0
- package/skills/lit-pptx/references/tonalities/ledger.md +151 -0
- package/skills/lit-pptx/references/tonalities/night.md +148 -0
- package/skills/lit-pptx/references/tonalities/paper.md +136 -0
- package/skills/lit-pptx/references/tonalities/signal.md +148 -0
- package/skills/lit-pptx/references/tonalities/studio.md +149 -0
- package/skills/lit-pptx/scripts/compile-deck.js +68 -21
- package/skills/lit-pptx/scripts/craft-thresholds.json +45 -1
- package/skills/lit-pptx/scripts/craft_extras.py +37 -8
- package/skills/lit-pptx/scripts/deck_output.py +654 -0
- package/skills/lit-pptx/scripts/embed_fonts.py +2 -2
- package/skills/lit-pptx/scripts/layout_inventory.py +35 -2
- package/skills/lit-pptx/scripts/lib/directive-parser.js +2 -2
- package/skills/lit-pptx/scripts/lib/font-map.js +4 -4
- package/skills/lit-pptx/scripts/lib/grid-resolver.js +521 -0
- package/skills/lit-pptx/scripts/lib/layout-resolver.js +403 -21
- package/skills/lit-pptx/scripts/lib/markdown-loader.js +6 -4
- package/skills/lit-pptx/scripts/lib/render-adapter-html.js +3 -9
- package/skills/lit-pptx/scripts/lib/render-adapter-pptx.js +500 -113
- package/skills/lit-pptx/scripts/lib/render-pack.js +3558 -0
- package/skills/lit-pptx/scripts/lib/slide-ast.js +55 -24
- package/skills/lit-pptx/scripts/lib/spec-validator.js +2 -2
- package/skills/lit-pptx/scripts/lib/template-registry.js +335 -11
- package/skills/lit-pptx/scripts/qa_deck.py +48 -13
- package/skills/lit-pptx/scripts/validate_pptx.py +17 -5
- package/skills/lit-pptx/specs/template-enrollment-contract.md +4 -4
- package/skills/lit-pptx/templates/boilerplate_professional.css +13 -13
- package/skills/lit-pptx/templates/enrolled/AZURE-A2Z/layout-mapping.yaml +1 -1
- package/skills/lit-pptx/templates/enrolled/AZURE-A2Z/template.yaml +5 -2
- package/skills/lit-pptx/templates/enrolled/AZURE-PRO/capabilities.yaml +20 -20
- package/skills/lit-pptx/templates/enrolled/AZURE-PRO/layout-mapping.yaml +1 -11
- package/skills/lit-pptx/templates/enrolled/AZURE-PRO/template.yaml +10 -7
- package/skills/lit-pptx/templates/enrolled/BOILERPLATE-PRETENDARD/capabilities.yaml +17 -17
- package/skills/lit-pptx/templates/enrolled/BOILERPLATE-PRETENDARD/template.yaml +8 -8
- package/skills/lit-pptx/templates/tonalities/atlas/pack.yaml +105 -0
- package/skills/lit-pptx/templates/tonalities/chalk/pack.yaml +110 -0
- package/skills/lit-pptx/templates/tonalities/gazette/pack.yaml +106 -0
- package/skills/lit-pptx/templates/tonalities/ledger/pack.yaml +107 -0
- package/skills/lit-pptx/templates/tonalities/night/pack.yaml +106 -0
- package/skills/lit-pptx/templates/tonalities/paper/pack.yaml +111 -0
- package/skills/lit-pptx/templates/tonalities/signal/pack.yaml +107 -0
- package/skills/lit-pptx/templates/tonalities/studio/pack.yaml +105 -0
- package/skills/lit-typographic-motion/THIRD_PARTY_NOTICES +1 -1
- package/skills/lit-typographic-motion/engine/stage/capture.mjs +2 -2
- package/skills/lit-typographic-motion/engine/treatment.mjs +1 -1
- package/skills/lit-typographic-motion/fonts/pins.json +2 -2
- package/skills/lit-typographic-motion/gate.mjs +1 -1
- package/skills/lit-typographic-motion/references/stage.md +1 -1
- package/skills/lit-typographic-motion/references/style-bibles.md +2 -2
- package/skills/lit-typographic-motion/references/treatment.md +1 -1
- package/skills/lit-typographic-motion/references/type-craft.md +3 -3
- package/skills/managed-skill-manifest.json +288 -44
- package/skills/lit-pptx/pretendard-font/public/static/LitOpenCodeSans-Bold.otf +0 -0
- package/skills/lit-pptx/pretendard-font/public/static/LitOpenCodeSans-Regular.otf +0 -0
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Sunday opening at four more branch libraries
|
|
3
|
+
subtitle: Case for a six-month trial from January 2027
|
|
4
|
+
author: Library Services Manager
|
|
5
|
+
organization: Brookmere sample borough
|
|
6
|
+
date: 2026-10-19
|
|
7
|
+
short_title: Sunday opening trial
|
|
8
|
+
notice: "Sample brief: the borough, branches, visit counts and costs are invented examples."
|
|
9
|
+
tonality: Brief
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
::: cover kicker="Decision brief"
|
|
13
|
+
:::
|
|
14
|
+
|
|
15
|
+
::: callout kind=key title="Decision requested"
|
|
16
|
+
Approve a six-month trial of Sunday opening, 12:00 to 16:00, at Eastfield, Kings Row, Millbrook and Thorne branches from 4 January 2027, at a cost of £19,600 from the libraries modernisation budget.
|
|
17
|
+
:::
|
|
18
|
+
|
|
19
|
+
# Summary
|
|
20
|
+
|
|
21
|
+
Three of the borough's seven branches already open on Sundays, and they are busy. They averaged 310 visits each Sunday afternoon in the year to September 2026, which is more per opening hour than any weekday evening.
|
|
22
|
+
|
|
23
|
+
Families and shift workers are the main Sunday users. In the 2026 user survey, 44 % of Sunday visitors said they could not come on any other day, against 19 % of weekday visitors.
|
|
24
|
+
|
|
25
|
+
The trial costs £19,600 for twenty-six Sundays. Almost all of it is staff time: two members of staff per branch for four hours, paid at the weekend rate.
|
|
26
|
+
|
|
27
|
+
We will judge the trial on visits per opening hour. If the four branches reach two thirds of the current Sunday average by the end of June, we will propose permanent Sunday opening in the 2027/28 budget.
|
|
28
|
+
|
|
29
|
+
# Current Sunday use
|
|
30
|
+
|
|
31
|
+
Table 1. Visits per Sunday afternoon and per opening hour (weekday: evening hours) at the three Sunday branches, October 2025 to September 2026
|
|
32
|
+
|
|
33
|
+
| Branch | Sunday visits | Per hour, Sunday | Per hour, weekday |
|
|
34
|
+
|---|---:|---:|---:|
|
|
35
|
+
| Central | 420 | 105 | 71 |
|
|
36
|
+
| Harbour Road | 280 | 70 | 48 |
|
|
37
|
+
| Westgate | 230 | 58 | 39 |
|
|
38
|
+
| Average | 310 | 78 | 53 |
|
|
39
|
+
|
|
40
|
+
Source: Door counter data, library management system (sample).
|
|
41
|
+
|
|
42
|
+
The four trial branches were chosen because they are the furthest from an existing Sunday branch. Residents of Eastfield and Thorne currently need two buses to reach Central on a Sunday.
|
|
43
|
+
|
|
44
|
+
# Cost and staffing
|
|
45
|
+
|
|
46
|
+
Table 2. Trial cost for twenty-six Sundays
|
|
47
|
+
|
|
48
|
+
| Item | Basis | Cost (£) |
|
|
49
|
+
|---|---|---:|
|
|
50
|
+
| Staff time | 2 staff × 4 h × 26 Sundays × 4 branches × £18.50 | 15,392 |
|
|
51
|
+
| Heating, lighting and security | £40 per branch per Sunday | 4,160 |
|
|
52
|
+
| Total | Rounded to £19,600 in the request | 19,552 |
|
|
53
|
+
|
|
54
|
+
Staff will work Sundays by volunteer rota first. The union branch has agreed the rota terms, and fourteen staff have already put their names forward, enough to cover all four branches without compulsory shifts.
|
|
55
|
+
|
|
56
|
+
# Risks
|
|
57
|
+
|
|
58
|
+
Turnout may be slow in the first weeks while residents learn about the change. Leaflets go to every household in the four catchment areas in December, and each branch will promote Sunday opening at its weekday story sessions.
|
|
59
|
+
|
|
60
|
+
A wet winter would depress visits at all branches. To keep the comparison fair, results will be read against the three existing Sunday branches over the same weeks, not against last year.
|
|
61
|
+
|
|
62
|
+
# Next steps
|
|
63
|
+
|
|
64
|
+
With approval by 31 October, the rota closes on 21 November and the four branches publish their Sunday hours in the December newsletter. A mid-trial report on visits per opening hour goes to the libraries board in April 2027, and the final report with the budget proposal in July.
|
|
@@ -0,0 +1,306 @@
|
|
|
1
|
+
# Page composition
|
|
2
|
+
|
|
3
|
+
This file describes the page every tonality builds and what the author controls from the Markdown
|
|
4
|
+
source: the A4 frame and its margins, the typeface and type sizes, colour, tables, Korean writing
|
|
5
|
+
conventions, leading, line breaking in Word, pagination, and the running head. Most of these are fixed
|
|
6
|
+
by the pack and applied by the converter; the author's part is to write a source that the fixed page
|
|
7
|
+
can carry without forcing it.
|
|
8
|
+
|
|
9
|
+
The look all six packs share is restraint. Black-ink text and headings, headings only a step or two
|
|
10
|
+
larger than the body, tables drawn with three rules, one accent colour at most, no tinted panels, no
|
|
11
|
+
decorative numerals. A document built this way is read for its content, and the few elements that do
|
|
12
|
+
stand out (a decision box, a key-figure strip) are noticed because nothing else competes with them.
|
|
13
|
+
|
|
14
|
+
## The frame
|
|
15
|
+
|
|
16
|
+
Every pack sets A4 (210 × 297 mm). The margins come from the density dial; at the density most packs use
|
|
17
|
+
(9) they are 25 mm at the top and sides and 27 mm at the bottom. The sides never drop below 25 mm and the
|
|
18
|
+
bottom is never smaller than the top, so the text block is 160 mm wide at most: about 40 to 45 Hangul
|
|
19
|
+
syllables or 75 to 85 Latin characters per line at 10.5 pt. The header and footer sit 12 mm from the
|
|
20
|
+
paper edge at most.
|
|
21
|
+
|
|
22
|
+
Journal sets the body in two columns 6 mm apart. A table with more than three columns in a Journal body
|
|
23
|
+
is lifted out into a full-width band, together with its caption, and the columns resume underneath; a
|
|
24
|
+
table of three columns or fewer stays inside its column at the column's width.
|
|
25
|
+
|
|
26
|
+
## Typeface and sizes
|
|
27
|
+
|
|
28
|
+
Pretendard is the face for Hangul, Latin and headings in every pack except Journal, which sets Latin body
|
|
29
|
+
text in Times New Roman and keeps Pretendard for Hangul and headings. The converter writes the face
|
|
30
|
+
names into the document defaults, every style, the theme fonts and the list glyphs, so a renderer has no
|
|
31
|
+
default face to fall back on. Do not ask for another face in a tonality document; a typeface requirement
|
|
32
|
+
from the user is a reason to use the publisher path or a supplied template.
|
|
33
|
+
|
|
34
|
+
Body text is 10.5 pt (11 pt for English Memo and English Proposal) and never smaller. The other sizes
|
|
35
|
+
are derived from it, rounded to the half point:
|
|
36
|
+
|
|
37
|
+
| Element | Report | Brief | Manual | Proposal | Memo | Journal |
|
|
38
|
+
|---|---|---|---|---|---|---|
|
|
39
|
+
| Body (Korean) | 10.5 | 10.5 | 10.5 | 10.5 | 10.5 | 10.5 |
|
|
40
|
+
| h1 | 14.5 | 13.5 | 14 | 14.5 | 12.5 | 13.5 |
|
|
41
|
+
| h2 | 12.5 | 12 | 12 | 12.5 | 11.5 | 12 |
|
|
42
|
+
| h3 | 10.5 bold | 10.5 bold | 10.5 bold | 10.5 bold | 10.5 bold | 10.5 bold |
|
|
43
|
+
| Title | 26.5 | 26.5 | 26.5 | 28.5 | 19 | 26.5 |
|
|
44
|
+
|
|
45
|
+
English Proposal steps up from its 11 pt body (h1 15.5, h2 13, title 29.5) and English Memo likewise
|
|
46
|
+
(h1 13, h2 12, title 20). Table text is 9.5 pt, note and source lines 9 pt and the running head 8.5 pt
|
|
47
|
+
(10, 9.5 and 9 pt under an 11 pt body); a key figure takes the h2 size. A title that would need a fourth line, or that holds a word wider than the
|
|
48
|
+
measure, is stepped down a point at a time until it fits in three lines.
|
|
49
|
+
|
|
50
|
+
## Headings
|
|
51
|
+
|
|
52
|
+
Headings are bold, left-aligned and in the body ink. Levels differ by size, weight and the space around
|
|
53
|
+
them, never by colour, underline or a box. Space above is about twice the space below (h1 22 pt above and
|
|
54
|
+
9 pt below, h2 15 and 6, h3 11 and 4), and every heading keeps with the paragraph that follows it. The only
|
|
55
|
+
rule a heading carries is the Brief's full-width hairline above each h1, which stands in for a section
|
|
56
|
+
number.
|
|
57
|
+
|
|
58
|
+
Use at most three levels. Open every h1 section with at least one paragraph before its first h2, so two
|
|
59
|
+
headings never stand back to back; the converter does not insert that paragraph for you.
|
|
60
|
+
|
|
61
|
+
Numbers, where the pack uses them, are added by the converter in plain ink at the heading's own size.
|
|
62
|
+
Do not type them in the source.
|
|
63
|
+
|
|
64
|
+
- Korean Report: `Ⅰ.` for h1, `1.` for h2, `가.` for h3, each followed by one space.
|
|
65
|
+
- English Report, Manual and Journal: `1`, `1.1`, `1.1.1`, followed by a tab, with the heading texts of a
|
|
66
|
+
level aligned on one line however wide the widest number is.
|
|
67
|
+
- Brief, Proposal and Memo: no numbers.
|
|
68
|
+
- A back-matter heading (References, Acknowledgements, 참고문헌, 감사의 글) is never numbered.
|
|
69
|
+
|
|
70
|
+
A heading, the title and the subtitle are noun-phrase labels. The gate's `heading.declarative` check
|
|
71
|
+
fails a Korean label whose last word ends like a sentence (-다, -니다, -요, -죠, or a nominalised claim
|
|
72
|
+
such as -함, -됨, -있음) and an English label that ends with a full stop or contains an auxiliary (is,
|
|
73
|
+
are, has, will, can, does) or one of a list of finite verbs. That list includes words that are also nouns:
|
|
74
|
+
works, needs, leads, shows, cuts, pays, takes, saves, matters, drops. "Staffing needs" fails; "Staffing
|
|
75
|
+
requirements" passes. The finding goes in the first sentence under the heading, not in the heading.
|
|
76
|
+
|
|
77
|
+
## Colour
|
|
78
|
+
|
|
79
|
+
Each pack has a three-value ink palette: text #1A1A1A, muted #555555 for note lines and the running
|
|
80
|
+
head, line #8C8C8C for hairlines. Every style in the document is set to the ink, including the heading
|
|
81
|
+
styles the build does not use, so a reader who applies Heading 5 later still gets black text. Hyperlinks
|
|
82
|
+
are recoloured to the ink.
|
|
83
|
+
|
|
84
|
+
Four packs declare one accent and name at most two places for it:
|
|
85
|
+
|
|
86
|
+
| Pack | Accent | Places |
|
|
87
|
+
|---|---|---|
|
|
88
|
+
| Report | #1F3A5F | title rule, callout rules |
|
|
89
|
+
| Brief | #2D5A47 | title rule, callout rules |
|
|
90
|
+
| Manual | #2E4A66 | callout rules, sidebar rule |
|
|
91
|
+
| Proposal | #6E2639 | cover rule, callout rules |
|
|
92
|
+
| Memo | none | none |
|
|
93
|
+
| Journal | none | none |
|
|
94
|
+
|
|
95
|
+
The accent is never used on text, fills or headings. The gate's restraint checks fail a tonality
|
|
96
|
+
document that has more than one hue outside the ink, an accent on more than two kinds of element, a
|
|
97
|
+
coloured heading (`heading.ink`), an h1 more than 1.5 times the body (`heading.ratio`), a shaded data
|
|
98
|
+
table cell (`table.fill`), or a coloured or shaded notice in a page header (`furniture.chip`). These
|
|
99
|
+
are produced only by hand edits or a custom template; a source converted with a pack does not trigger
|
|
100
|
+
them.
|
|
101
|
+
|
|
102
|
+
## Paragraphs and alignment
|
|
103
|
+
|
|
104
|
+
Paragraphs are separated by space (6 pt after a Korean paragraph, 5 pt after an English one) and never
|
|
105
|
+
also by a first-line indent. Korean body text is justified in Report, Brief, Proposal and Memo, with
|
|
106
|
+
kinsoku on so a closing bracket or full stop never starts a line. Manual and Journal set Korean ragged
|
|
107
|
+
right. English text is ragged right in every pack.
|
|
108
|
+
|
|
109
|
+
## Leading
|
|
110
|
+
|
|
111
|
+
The body line pitch is a percentage of the body size: 175 % for Korean and 133 % for English at the
|
|
112
|
+
density most packs use, rising to 185 % and 140 % at low density. The converter writes it to Word as a
|
|
113
|
+
line-spacing multiple, and the multiple is not the percentage divided by 100.
|
|
114
|
+
|
|
115
|
+
A single line in Word is not 1.0 em. Measured on rendered pages, Pretendard's single line is about
|
|
116
|
+
1.55 em in Word and 1.51 em in LibreOffice; the converter uses the mean, 1.53 em. Times New Roman's is
|
|
117
|
+
about 1.15 em. The multiple is the pitch divided by that single-line height:
|
|
118
|
+
|
|
119
|
+
- Korean body at density 9: 1.75 / 1.53 = Multiple 1.14.
|
|
120
|
+
- English body in Pretendard at density 9: 1.33 / 1.53 = Multiple 0.87.
|
|
121
|
+
- English body in Journal (Times New Roman) at density 9: 1.33 / 1.15 = Multiple 1.16.
|
|
122
|
+
|
|
123
|
+
The habit of setting "1.6 line spacing" for Korean text produces a 245 % pitch with Pretendard, which is
|
|
124
|
+
why documents set that way look loose and run long. Headings use a 130 % pitch, captions, table cells and
|
|
125
|
+
note lines 140 %. When editing a converted document by hand, leave the paragraph spacing alone.
|
|
126
|
+
|
|
127
|
+
## Line breaking in Word
|
|
128
|
+
|
|
129
|
+
The converter marks the document Korean (`ko-KR` as the East Asian language of the defaults) and sets
|
|
130
|
+
`wordWrap` and `kinsoku` on in the Normal style. With these, Word wraps Hangul between words (어절) as a
|
|
131
|
+
Korean reader expects. LibreOffice ignores the setting and breaks Hangul between syllables whatever the
|
|
132
|
+
document says, so a page rendered through LibreOffice for checking shows syllable breaks that Word will
|
|
133
|
+
not show. Do not rewrite body text to move those breaks.
|
|
134
|
+
|
|
135
|
+
Titles, subtitles and headings are a different case: the converter breaks the title between words
|
|
136
|
+
itself, in the fewest and most even lines that fit, and the gate's `heading.wrap` check fails any
|
|
137
|
+
heading or title that a rendered page breaks inside a word. A heading that keeps failing is too long for
|
|
138
|
+
its column; shorten the label.
|
|
139
|
+
|
|
140
|
+
## Tables
|
|
141
|
+
|
|
142
|
+
Every tonality draws booktabs: a 1 pt rule above and below the table, a 0.5 pt rule under the header row,
|
|
143
|
+
no vertical rules, no inner horizontal rules, no fills. The header row is bold ink. A last row whose first
|
|
144
|
+
cell is 합계, 총계, 소계, 계, Total or Sum is bold under its own 0.5 pt rule. Cells have 3.5 pt padding above
|
|
145
|
+
and below and 5 pt at the sides.
|
|
146
|
+
|
|
147
|
+
A column whose body cells are all numbers is right-aligned in tabular figures. The test is strict: a cell
|
|
148
|
+
may hold a sign, digits with commas or points, an optional bracketed note, and a short unit after the
|
|
149
|
+
number (%, %p, 배, a Hangul unit of up to three syllables, or a Latin unit of up to three letters). A
|
|
150
|
+
currency symbol in front (£15,392, ₩2,000, $40) or free text in one cell makes the whole column text, and
|
|
151
|
+
the publisher-style audit then reports the numbers as misaligned. Put the currency or unit in the header
|
|
152
|
+
cell instead: `Cost (£)`, `금액 (만 원)`. A dash or an empty cell is allowed in a numeric column.
|
|
153
|
+
|
|
154
|
+
No column is made narrower than its longest word plus padding; the room is taken from the widest column.
|
|
155
|
+
Keep cell text short. A table is evidence, not prose: if a cell needs two sentences, the content belongs
|
|
156
|
+
in the text above the table.
|
|
157
|
+
|
|
158
|
+
## Korean conventions
|
|
159
|
+
|
|
160
|
+
These apply on every path, including publisher profiles:
|
|
161
|
+
|
|
162
|
+
- **Captions.** A table caption stands above its table as `<표 1> 제목`, a figure caption as `[그림 1] 제목`.
|
|
163
|
+
Write `표 1. 제목` or `그림 1. 제목` in the source and the converter sets the bracket form with a bold
|
|
164
|
+
label.
|
|
165
|
+
- **Units.** When every header cell after the first ends in the same unit in brackets, for example
|
|
166
|
+
`2025년 (건)` and `2026년 (건)`, the unit moves out of the cells into one line `(단위: 건)` right-aligned
|
|
167
|
+
above the table. Mixed units stay in the cells; that is correct, not a fault.
|
|
168
|
+
- **Notes and sources.** Below the table, `주:` first and `자료:` after it, each its own paragraph, at note
|
|
169
|
+
size. A source written `출처:` is rewritten as `자료:`.
|
|
170
|
+
- **Dates.** `2025. 1. 2.` or `2025년 1월 2일` in the text; never `2025-01-02`. The converter rewrites ISO
|
|
171
|
+
dates in the Korean body and formats the frontmatter `date:`, but not dates inside other frontmatter
|
|
172
|
+
fields (subtitle, notice, abstract), so write those the Korean way yourself. Do not start a line with
|
|
173
|
+
a hand-written date such as `2026. 3. 2.`: Markdown reads a line that opens with a number and a full
|
|
174
|
+
stop as a numbered list. The gate's `date.iso` check fails any ISO date left in a Korean document.
|
|
175
|
+
- **Lists.** Write Markdown `-` lists; the converter draws them with an en dash at every level in Korean
|
|
176
|
+
documents. A government-style `○` line typed as text is acceptable inside a 개조식 passage. A list of one
|
|
177
|
+
item is set as a plain paragraph without a symbol. Numbered lists restart at 1 after any break.
|
|
178
|
+
- **No glyph markers.** No filled or hollow squares, arrowheads, check marks or emoji in headings, list
|
|
179
|
+
heads or table cells.
|
|
180
|
+
- **Emphasis.** Hangul is emphasised by weight only. The converter removes italic from any run that holds
|
|
181
|
+
Hangul. Use bold sparingly: a bold keyword in every sentence reads as machine-made.
|
|
182
|
+
- **Numbers and units.** Choose one spacing style for numbers and units and keep it (`12kW` or `12 kW`).
|
|
183
|
+
A number written with a space before an SI unit is held together with a no-break space. A hyphen between
|
|
184
|
+
two digits becomes an en dash (1–3); a spaced hyphen between words becomes an em dash, which the prose
|
|
185
|
+
lint then reports, so use a comma or a full stop instead.
|
|
186
|
+
|
|
187
|
+
## Pagination
|
|
188
|
+
|
|
189
|
+
The converter never forces a page break before a heading. It keeps each heading with its next paragraph,
|
|
190
|
+
keeps a short paragraph (under 60 characters) after a heading with the paragraph after that, turns widow
|
|
191
|
+
and orphan control on, and keeps a closing paragraph of up to about four lines with the block before it,
|
|
192
|
+
so the last page never holds one orphaned paragraph. A component box does not split across pages, and a
|
|
193
|
+
box under a paragraph or list item stands 6 pt clear of it.
|
|
194
|
+
|
|
195
|
+
**Lists and headings.** A list of up to six items keeps together: every item but the last keeps with the
|
|
196
|
+
next, and a lead-in of a line or two right before it ("다음 단계는 아래와 같다.") keeps with the list. In
|
|
197
|
+
a two-column body a list of five or six items may break once: the lead-in keeps with the first two items
|
|
198
|
+
and the last two stay together, so the block no longer jumps to the next column and leaves a third of a
|
|
199
|
+
column empty. The last section of a single-column document, with no table or picture and about twelve
|
|
200
|
+
lines or fewer, keeps whole, so its paragraph goes to the last page with its list. In
|
|
201
|
+
a single-column body a heading keeps its short lead sentence (about 200 characters) with a table of up to
|
|
202
|
+
eight body rows it opens, caption and unit line included, so the heading and its sentence never wait at
|
|
203
|
+
a page foot while the table starts the next page.
|
|
204
|
+
|
|
205
|
+
**Short documents.** A source of about one page (the converter's estimate) is set with tight spacing in
|
|
206
|
+
any tonality, as a memo is, so it does not spill a few lines onto a second page. A section that opens
|
|
207
|
+
under a hairline right after a ruled box draws no second rule.
|
|
208
|
+
|
|
209
|
+
**Tables.** A table whose estimated height fits in 0.9 of the frame is kept on one page with its caption,
|
|
210
|
+
unit line and note lines. A long table, meaning a header plus six or more body rows, may break between
|
|
211
|
+
rows with the header row repeated, but only where a quarter of the frame or more is left: the header
|
|
212
|
+
stays with at least three body rows (or rows worth a quarter of the frame), and the last three body rows
|
|
213
|
+
stay together. Any other split fails the gate's `table.split` check.
|
|
214
|
+
|
|
215
|
+
Table columns: no column is narrower than its longest word, and a text column whose cells wrap while the
|
|
216
|
+
others hold their longest cell with room to spare takes that room; a header may take two lines, and no
|
|
217
|
+
column gives up room below its own longest data cell. Negative figures in tables take the minus sign
|
|
218
|
+
(−), Korean tables too. A sentence right above a table without a caption keeps 6 pt under itself. Under a
|
|
219
|
+
publisher profile the paragraph after a table stands three quarters of a body line clear, a paragraph
|
|
220
|
+
after a list 6 pt, and a list of up to six items keeps together. A table too tall for a page in any
|
|
221
|
+
case should be cut down to the rows the text discusses, with the full data in an appendix or a workbook.
|
|
222
|
+
|
|
223
|
+
**Figures.** A picture is scaled to the text width and to a share of the frame height set by the pack
|
|
224
|
+
(Proposal 60 %, Report and Manual 45 %, Brief, Memo and Journal 40 %), and keeps with its caption. A
|
|
225
|
+
figure caption on another page than its picture fails `figure.split`.
|
|
226
|
+
|
|
227
|
+
**Fill.** No body page may be filled to less than 0.35 of its frame; the cover and the last page are
|
|
228
|
+
exempt. A short page almost always comes from a large table or figure that could not fit in the space
|
|
229
|
+
left and moved whole to the next page. The fixes, in order: put a lead sentence or the paragraph that
|
|
230
|
+
discusses the table above it, move the table below the next paragraph, or shorten the table.
|
|
231
|
+
|
|
232
|
+
## Running heads and folios
|
|
233
|
+
|
|
234
|
+
The running head is set at 8.5 pt in the muted ink, regular weight, with the short title on one side and
|
|
235
|
+
the folio on the other, or the folio alone. It never appears on the page that carries the title block or
|
|
236
|
+
on a cover page. The folio is the page number alone, never "page / total". The short title is the
|
|
237
|
+
frontmatter `short_title`, or the title cut at a word boundary near 40 characters; give every document of
|
|
238
|
+
more than two pages a `short_title`.
|
|
239
|
+
|
|
240
|
+
| Pack | Header | Footer |
|
|
241
|
+
|---|---|---|
|
|
242
|
+
| Report | none | short title left, folio right |
|
|
243
|
+
| Brief | none | folio right |
|
|
244
|
+
| Manual | short title | folio right |
|
|
245
|
+
| Proposal | none | folio centred, starting at 1 after the cover |
|
|
246
|
+
| Memo | none | folio right |
|
|
247
|
+
| Journal | short title left, folio right | none |
|
|
248
|
+
|
|
249
|
+
## The sample-data notice
|
|
250
|
+
|
|
251
|
+
When the content is invented or illustrative, the frontmatter `notice:` states it once, in ink, at the
|
|
252
|
+
furniture size: under the title rule on a masthead, under the memo or control block, or at the foot of a
|
|
253
|
+
cover page. It is never repeated in page headers in a tonality document. Write it as a plain statement
|
|
254
|
+
("예시 데이터. 회사, 금액, 수치는 모두 가정이다." / "Sample report. The council, figures and costs are
|
|
255
|
+
invented examples.") and keep invented values realistic. Never leave a bracketed blank, a to-be-decided
|
|
256
|
+
marker, a run of capital X, doubled circles or a line of underscores in the source: the gate's content
|
|
257
|
+
check fails on any of them, and it also treats any short bracketed text without a digit, such as a
|
|
258
|
+
bracketed company name, as a blank.
|
|
259
|
+
|
|
260
|
+
## What the gate checks
|
|
261
|
+
|
|
262
|
+
`python3 <skill>/run.py qa draft.docx --source draft.md` runs the checks that read the Word file and the
|
|
263
|
+
source: file integrity, missing headings and blanks, prose lint on the source, and the structural and
|
|
264
|
+
restraint checks. Adding `--layout` renders the document through LibreOffice and adds the page checks.
|
|
265
|
+
The JSON report's `failure_reasons` lists what failed; `lint.prose`, `lint.design` and `output.findings`
|
|
266
|
+
hold the details.
|
|
267
|
+
|
|
268
|
+
| Check | Needs `--layout` | Usual cause | Fix in the source |
|
|
269
|
+
|---|---|---|---|
|
|
270
|
+
| `heading.declarative` | no | a heading written as a claim | rewrite as a noun phrase; move the claim into the first sentence |
|
|
271
|
+
| `heading.order` | no | an h3 straight under an h1, or a document opening at h3 | add the missing level or promote the heading |
|
|
272
|
+
| `date.iso` | no | an ISO date in a frontmatter text field or a table cell | write `2026. 10. 5.` |
|
|
273
|
+
| `component.budget` | no | a fourth component kind, a second key-figure strip | drop the component without a purpose line |
|
|
274
|
+
| `fill.page` | yes | a large table or figure pushed to the next page | lead sentence above it, or move it below the next paragraph |
|
|
275
|
+
| `heading.stranded` | yes | a heading over a table or figure that moved | a short lead sentence under the heading |
|
|
276
|
+
| `heading.wrap`, `title.lines` | yes | a label too long for its measure | shorten the label; move detail to the subtitle |
|
|
277
|
+
| `table.split` | yes | a table that fits a page split anyway, or a caption apart from its table | lead sentence above, or shorten the table |
|
|
278
|
+
| `figure.split` | yes | picture and caption on different pages | make the picture smaller in its source |
|
|
279
|
+
| `sidebar.overlap` | yes | too little text after a floating sidebar | add the paragraphs that belong there, or place the sidebar earlier |
|
|
280
|
+
| `component.variety` | yes | four or more pages and fewer than two component kinds | add a component the direction card justifies, or tighten to three pages |
|
|
281
|
+
| `cover.block` | yes | a filled shape over a quarter of the cover | a hand edit or template; rebuild from the source |
|
|
282
|
+
| `memo.fit` | yes | a memo spilling a few lines onto page 2 (under a quarter of the frame) | cut the lines that spill; the Memo pack's tight spacing already applies |
|
|
283
|
+
| `page.spill` | yes | page 2 of a two-page document under 0.4 of the frame, or a last page under an eighth | set the source on one page, give page 2 a whole section, or move the closing box earlier |
|
|
284
|
+
| `list.split` | yes | a list of up to six items over two pages or columns (one break of a five- or six-item list in a column, two items or more each side, is allowed) | keep the lead-in short; split a long list into two with a sentence between |
|
|
285
|
+
| `heading.apart` | yes | a heading and its lead sentence at a page foot, the table they open on the next page | a shorter lead, or the sentence under the table |
|
|
286
|
+
| `heading.column` | yes | in a two-column body a heading at the foot of a column, its first lines in the next column | the converter spans a `자료:` or `Source:` line with its page-wide table; otherwise a shorter paragraph before the heading |
|
|
287
|
+
| `columns.balance` | yes | in a two-column body a column stopping a quarter of the frame short beside one that runs to the foot, or a last page with one column under half the depth of the other | the converter closes the columns with a continuous break and lets a five- or six-item list break once; otherwise move a long block |
|
|
288
|
+
| `notice.dash` | no | a notice written `예시 데이터 — …` | write `예시 데이터: …` (quote the value in the frontmatter) |
|
|
289
|
+
|
|
290
|
+
For `component.variety`, the page-1 block counts as a kind when it is a cover page, a memo block, a
|
|
291
|
+
control block or the title page of a two-column Journal, and a Journal's two-column body counts as
|
|
292
|
+
columns. A four-page Report with a masthead therefore needs two of callout, key figures and columns.
|
|
293
|
+
|
|
294
|
+
The prose lint reads the source per h1 section. The rules most often hit by a fresh draft:
|
|
295
|
+
|
|
296
|
+
- sentence lengths that vary too little within a section of four or more sentences and 80 or more words
|
|
297
|
+
(mix short and long sentences);
|
|
298
|
+
- a spaced hyphen between words, or two em dashes in one section;
|
|
299
|
+
- in Korean, three or more of 하였다, 되었다, 할 수 있다 and similar endings in one section, translationese
|
|
300
|
+
(에 있어서, 살펴보면), and loanwords such as 리뷰 and 리서치;
|
|
301
|
+
- in English, stock words (delve, furthermore, moreover, leverage, robust, comprehensive), two hedges in
|
|
302
|
+
one sentence (perhaps, potentially, could, might), and three or more intensifiers (very, highly,
|
|
303
|
+
extremely) in one section.
|
|
304
|
+
|
|
305
|
+
Section names Introduction, Methods, Results and Discussion pull in manuscript rules (citations, passive
|
|
306
|
+
voice); a report does not need those names.
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
# Brief
|
|
2
|
+
|
|
3
|
+
Pack: `templates/tonalities/brief.yaml` · dials density 9, variance 3 · accent #2D5A47 on the title rule
|
|
4
|
+
and callout rule.
|
|
5
|
+
|
|
6
|
+
## Purpose
|
|
7
|
+
|
|
8
|
+
A Brief puts a decision in front of someone who will read the first page and perhaps the second. It runs
|
|
9
|
+
one to three pages and is built conclusion first: the decision request stands directly under the title
|
|
10
|
+
block, then a summary of three or four numbered points, then the supporting sections. Korean 검토 보고,
|
|
11
|
+
현황 보고 and decision papers for a committee fit here, as do English decision briefs and options papers.
|
|
12
|
+
|
|
13
|
+
## Wrong for
|
|
14
|
+
|
|
15
|
+
- More than three pages of material, or four or more tables that all matter: use a Report and keep the
|
|
16
|
+
decision callout.
|
|
17
|
+
- A notice that asks for no decision: use a Memo.
|
|
18
|
+
- A step-by-step procedure: use a Manual.
|
|
19
|
+
- A project funding request with budget and schedule detail: use a Proposal.
|
|
20
|
+
|
|
21
|
+
## Structure
|
|
22
|
+
|
|
23
|
+
| Feature | What the pack sets |
|
|
24
|
+
|---|---|
|
|
25
|
+
| Page 1 | compact masthead: series line, title, subtitle, byline, rule, notice; then the first `kind=key` callout, moved to the top by the converter wherever it stands in the source |
|
|
26
|
+
| Summary | the paragraphs of the first h1 become numbered points ① to ④, each opening with its first sentence in bold |
|
|
27
|
+
| Numbering | none; each h1 opens under a full-width ink hairline |
|
|
28
|
+
| Components | callout (one box at most), columns |
|
|
29
|
+
| Running head | footer: folio right; none on page 1 |
|
|
30
|
+
| Contents | never |
|
|
31
|
+
|
|
32
|
+
The summary treatment is automatic. The converter takes the plain paragraphs under the first h1, up to
|
|
33
|
+
four, prefixes ①, ②, ③, ④ and sets the first sentence of each in bold: everything up to the first `다.`,
|
|
34
|
+
or the first full stop, question mark or exclamation mark followed by a space. Lists, tables and
|
|
35
|
+
components in that section are left as they are. A fifth paragraph is left without a number.
|
|
36
|
+
|
|
37
|
+
## Type scale
|
|
38
|
+
|
|
39
|
+
Body 10.5 pt, h1 13.5 pt, h2 12 pt, h3 10.5 pt bold, title 26.5 pt. Korean justified. The h1 hairline is
|
|
40
|
+
0.5 pt in ink with 6 pt of space between the rule and the heading text.
|
|
41
|
+
|
|
42
|
+
## Components
|
|
43
|
+
|
|
44
|
+
- **Callout.** One `kind=key` box holding the decision request: who decides, what exactly, by when, at
|
|
45
|
+
what cost. The pack caps callouts at one; any other callout is set as text with its title in bold.
|
|
46
|
+
- **Columns.** Two balanced blocks for options compared side by side. Each block opens with a bold label
|
|
47
|
+
("방안 A.", "Option B.") and states scope, cost and effect in the same order.
|
|
48
|
+
|
|
49
|
+
Key figures and sidebars are not drawn: the strip would compete with the numbered points, and the points
|
|
50
|
+
already carry the numbers.
|
|
51
|
+
|
|
52
|
+
## Writing the source
|
|
53
|
+
|
|
54
|
+
- Write the decision callout first or last; it ends up at the top either way. Phrase it as a request with
|
|
55
|
+
the amount and the date.
|
|
56
|
+
- Make the first h1 the summary. Write three or four paragraphs. The first sentence of each must work
|
|
57
|
+
alone in bold: a complete finding with its number. The rest of the paragraph supports it.
|
|
58
|
+
- Keep the first sentence free of decimal points before its end if possible; the bold lead stops at the
|
|
59
|
+
first full stop followed by a space, which a decimal is not, but an abbreviation such as "approx. 40"
|
|
60
|
+
is.
|
|
61
|
+
- Use one table at most for the current state, and keep it under eight rows.
|
|
62
|
+
- Close with risks and their mitigations. A Brief has no conclusion section: the conclusion is at the top.
|
|
63
|
+
|
|
64
|
+
## Source fragment
|
|
65
|
+
|
|
66
|
+
```markdown
|
|
67
|
+
---
|
|
68
|
+
title: 사옥 주차장 유료화 검토
|
|
69
|
+
subtitle: 월 정기권 도입과 방문객 무료 시간 조정
|
|
70
|
+
author: 예시 공사 총무부
|
|
71
|
+
organization: 예시 공사(가상 기관)
|
|
72
|
+
date: 2026-11-03
|
|
73
|
+
notice: 예시 데이터. 기관, 주차면 수, 요금은 모두 가정이다.
|
|
74
|
+
tonality: Brief
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
::: cover kicker="검토 보고"
|
|
78
|
+
:::
|
|
79
|
+
|
|
80
|
+
# 요약
|
|
81
|
+
|
|
82
|
+
직원 차량에 월 3만 원의 정기권을 도입하면 출근 시간대 만차 시각이 8시 40분에서 9시 20분으로 늦춰진다.
|
|
83
|
+
대중교통 지원금 신청자가 늘어 정기권 구매 차량이 등록 차량의 70% 수준에 머물 것으로 보았다.
|
|
84
|
+
|
|
85
|
+
방문객 무료 시간은 2시간에서 1시간으로 줄인다. 민원 상담 평균 체류 시간이 48분이어서 대부분의
|
|
86
|
+
방문객은 영향을 받지 않는다.
|
|
87
|
+
|
|
88
|
+
연간 순수입은 약 1억 2천만 원이다. 정기권 수입에서 주차 관제 장비 임차료와 관리 인건비를 뺀 값이다.
|
|
89
|
+
|
|
90
|
+
::: callout kind=key title="결정 요청"
|
|
91
|
+
2027년 1월부터 직원 월 정기권(3만 원)과 방문객 무료 1시간 기준을 시행하는 방안을 승인해 주시기 바랍니다.
|
|
92
|
+
:::
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
On the page the callout stands first under the title rule, followed by the hairline and the 요약 heading,
|
|
96
|
+
then three points ① ② ③ with their first sentences in bold.
|
|
97
|
+
|
|
98
|
+
## Before delivery
|
|
99
|
+
|
|
100
|
+
- The rendered document is three pages or fewer. If it is longer, the direction was wrong.
|
|
101
|
+
- Each numbered point's bold sentence states a finding, not a topic ("비용" is a topic; "연간 순수입은 약
|
|
102
|
+
1억 2천만 원이다." is a finding).
|
|
103
|
+
- The decision callout names the amount, the start date and who must approve.
|
|
104
|
+
- Numbers in the points match the table and the option blocks.
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
# Journal
|
|
2
|
+
|
|
3
|
+
Pack: `templates/tonalities/journal.yaml` · dials density 9, variance 6 · no accent.
|
|
4
|
+
|
|
5
|
+
## Purpose
|
|
6
|
+
|
|
7
|
+
Journal is for long-form reading at a desk: a white paper, an essay, a newsletter feature, a research
|
|
8
|
+
summary written for practitioners or a committee rather than for a named journal. The body is set in two
|
|
9
|
+
columns with a title block that carries the byline, an abstract and keywords, close in feel to a
|
|
10
|
+
publisher's article page but built by the tonality engine. The reader goes through the argument in order.
|
|
11
|
+
|
|
12
|
+
A manuscript for submission to a named journal is not a Journal tonality document. It goes down the
|
|
13
|
+
publisher path: `--publisher elsevier` (or acs, ieee, nature) for conversion and `--publisher elsevier
|
|
14
|
+
--kind manuscript` for the gate.
|
|
15
|
+
|
|
16
|
+
## Wrong for
|
|
17
|
+
|
|
18
|
+
- A submission to a named journal: use the publisher profile.
|
|
19
|
+
- Many wide tables: two columns cut a table of four or more columns out into full-width bands, and a
|
|
20
|
+
document made mostly of bands reads badly. Use a Report.
|
|
21
|
+
- A decision document: use a Brief.
|
|
22
|
+
|
|
23
|
+
## Structure
|
|
24
|
+
|
|
25
|
+
| Feature | What the pack sets |
|
|
26
|
+
|---|---|
|
|
27
|
+
| Page 1 | masthead: series line (kicker and date), title, subtitle, byline, affiliations and corresponding address when given, a rule in ink, the notice, then the abstract and keywords from the frontmatter; the two-column body starts under it on the same page |
|
|
28
|
+
| Summary | the frontmatter abstract, set under the label 초록 / Abstract |
|
|
29
|
+
| Numbering | 1 / 1.1 / 1.1.1, for cross-references in the text ("see section 3") |
|
|
30
|
+
| Components | callout only; the two-column body counts as columns for the gate |
|
|
31
|
+
| Running head | header: short title left, folio right; none on page 1 |
|
|
32
|
+
| Contents | never |
|
|
33
|
+
|
|
34
|
+
## Type scale
|
|
35
|
+
|
|
36
|
+
Body 10.5 pt; Latin body text in Times New Roman, Hangul and all headings in Pretendard. h1 13.5 pt, h2
|
|
37
|
+
12 pt, h3 10.5 pt bold, title 26.5 pt. Ragged right in both languages, which avoids wide word spaces in a
|
|
38
|
+
narrow column. Columns are 6 mm apart; figures are held to 40 % of the frame height.
|
|
39
|
+
|
|
40
|
+
The English body leading in Times New Roman is 133 % at density 9, written to Word as Multiple 1.16,
|
|
41
|
+
because Times New Roman's single line is about 1.15 em where Pretendard's is 1.53 em.
|
|
42
|
+
|
|
43
|
+
## Components
|
|
44
|
+
|
|
45
|
+
- **Callout.** One `kind=note` box for a reading aid, such as how to read a measurement or a definition
|
|
46
|
+
the argument depends on. The box takes the column width.
|
|
47
|
+
- **Tables.** Three columns or fewer stay inside the column at its width; four or more span both columns
|
|
48
|
+
with their caption. Prefer narrow tables.
|
|
49
|
+
- No key figures, no sidebar, no extra `columns` block: the page is already two columns.
|
|
50
|
+
|
|
51
|
+
## Writing the source
|
|
52
|
+
|
|
53
|
+
- Put the abstract in the frontmatter as `abstract:` (one paragraph, quoted) and the keywords as a list
|
|
54
|
+
`keywords: [a, b, c]`. Do not repeat the abstract as a body section.
|
|
55
|
+
- Use `author:` for a team or a single byline. `authors:` as a list of names and `affiliations:` as a
|
|
56
|
+
numbered mapping are also printed, the affiliations at note size under the byline.
|
|
57
|
+
- Write in sections with clear noun-phrase headings. Avoid the names Introduction, Methods, Results and
|
|
58
|
+
Discussion unless the document really is an article in that form; the prose lint applies manuscript
|
|
59
|
+
rules (citation density, passive voice) to sections with those names.
|
|
60
|
+
- Keep paragraphs moderate in length; a two-column page shows a long paragraph as a wall.
|
|
61
|
+
- Number tables and refer to them by number; the converter keeps each caption with its table.
|
|
62
|
+
|
|
63
|
+
## Source fragment
|
|
64
|
+
|
|
65
|
+
```markdown
|
|
66
|
+
---
|
|
67
|
+
title: 오래된 학교 건물의 겨울철 실내 공기
|
|
68
|
+
subtitle: 환기 횟수와 이산화탄소 농도 측정 요약
|
|
69
|
+
author: 예시 교육청 시설연구팀
|
|
70
|
+
organization: 예시 교육청(가상 기관)
|
|
71
|
+
date: 2026-12-10
|
|
72
|
+
short_title: 학교 건물 겨울철 실내 공기
|
|
73
|
+
abstract: "초등학교 교실 18곳에서 2025년 겨울 8주 동안 이산화탄소 농도를 측정했다. 쉬는 시간마다 창문을 연 교실은 수업 중 평균 1,050ppm을 유지했고, 창문을 열지 않은 교실은 2,300ppm까지 올랐다."
|
|
74
|
+
keywords: [실내 공기, 이산화탄소, 교실 환기, 학교 시설]
|
|
75
|
+
notice: 예시 연구 요약. 기관, 교실, 측정값은 모두 가정이다.
|
|
76
|
+
tonality: Journal
|
|
77
|
+
---
|
|
78
|
+
|
|
79
|
+
# 측정 배경
|
|
80
|
+
|
|
81
|
+
겨울철 교실은 난방 효율 때문에 창문을 닫아 두는 시간이 길다. 이 글은 환기 습관에 따라 수업 중
|
|
82
|
+
이산화탄소 농도가 얼마나 달라지는지를 정리한다.
|
|
83
|
+
|
|
84
|
+
## 측정 교실
|
|
85
|
+
|
|
86
|
+
표 1. 측정 교실 구성
|
|
87
|
+
|
|
88
|
+
| 구분 | 교실 수 (곳) | 평균 면적 (m²) |
|
|
89
|
+
|---|---:|---:|
|
|
90
|
+
| 1990년대 준공 | 10 | 66 |
|
|
91
|
+
| 2000년대 준공 | 8 | 68 |
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
The h1 prints as `1 측정 배경`; the table has three columns and stays inside the left column.
|
|
95
|
+
|
|
96
|
+
## Before delivery
|
|
97
|
+
|
|
98
|
+
- The abstract states the finding with its numbers; the body does not open by repeating it.
|
|
99
|
+
- Cross-references match the printed section numbers.
|
|
100
|
+
- No table wider than three columns unless it must be; each wide table becomes a full-width band.
|
|
101
|
+
- The qa run passes; with `--layout`, check that no band leaves a column nearly empty above it.
|