Vertical Font Conversion#
Use this skill when the task is about turning a horizontal font into a vertical-reading TTF font, or adjusting an existing vertical font result.
This skill is intentionally local-only. It focuses on source checking, grouped conversion, preview generation, local audit, and local test artifacts. It does not include remote conversion services, cloud uploads, or device-transfer steps.
Chinese display name#
竖版字体转换
What this skill covers#
- Source font precheck before vertical conversion
- Local vertical TTF production workflow
- Stable glyph-group handling rules
- Horizontal and vertical browser preview generation before delivery
- Reader test TXT generation
- Local audit for representative glyph placement
- Grouped conversion aimed at high-satisfaction vertical TTF output
Trigger conditions#
Activate this skill when the user asks for any of the following:
- “制作竖版字体”
- “做竖排 ttf”
- “制作竖版 TTF”
- “改竖排标点 / 引号 / 省略号 / 西文 / 数字”
- “启动 Vertical Font Conversion”
- “按竖版字体转换流程来”
Default execution meaning#
Unless the user explicitly asks to skip steps, “use Vertical Font Conversion” means:
- check the source font first
- make a horizontal preview first
- wait for user confirmation before building the vertical TTF
- make a vertical preview before delivering the font
- generate a reader test TXT
- stay fully local: horizontal preview, vertical TTF, vertical preview, reader test TXT, and audit output when needed
Mandatory workflow#
Follow this order unless the user explicitly asks to skip steps:
- Read the source horizontal TTF and check that the font opens normally and is not obviously broken.
- Generate a browser test image from the original horizontal font first.
- The preview must include:
- Chinese body text
- Latin letters
- Arabic digits
- single-point punctuation
- book-title marks / quotes / brackets
- dash / ellipsis
- one mixed-script sentence
- Ask the user to judge whether the source font itself is worth continuing.
- If confirmed, make the vertical TTF by glyph groups.
- Do not send the TTF immediately. Generate and show a browser test image for the vertical result first.
- Also generate a TXT test file for reader-side validation.
- Only after user confirmation, send the TTF and related local test artifacts.
If the original horizontal font already has obvious missing punctuation / Latin / digits / rendering defects, stop and tell the user it is not a good source candidate.
Read next#
Before operating, read these references:
- references/workflow.md — full operating sequence
- references/rules.md — glyph-group rules and latest default parameters
- references/implementation-notes.md — practical logic, tuning philosophy, and failure-mode awareness for high-satisfaction output
- references/default-config.json — baseline tunable parameters
- references/examples.md — concrete command examples
- references/case-template.md — template for recording successful real cases
- references/cases-zihun-songkekaiti.md — confirmed real case and lessons from 字魂宋刻楷体
Script entry points#
Prefer these bundled scripts before inventing fresh one-off code:
scripts/render_original_preview.py — generate original horizontal preview image
scripts/make_vertical_font.py — build glyf-based vertical TTF with the bundled grouped-conversion logic
scripts/make_vertical_font_cff.py — build CFF-based vertical font with preserved CharString metadata
scripts/render_vertical_preview.py — generate vertical result preview image
scripts/generate_reader_test_txt.py — generate reader-side TXT sample
scripts/audit_font_rules.py — inspect representative glyph bbox / center data after conversion
scripts/run_full_pipeline.py — one-shot local pipeline for preview → build → preview → TXT
Use the bundled builders as the default baseline. If future tuning is needed, preserve the stable script paths and update the rule implementations behind them.
Scope boundary#
This skill stops at local vertical-TTF deliverables.
Out of scope for this skill:
- epdfont conversion
- upload to
/fonts
- remote processing services
- cloud transfer / device transfer steps
If a later workflow needs those actions, handle them in a separate skill or a separate explicitly user-directed procedure.
Operational rules#
- Preserve the user-confirmed workflow; do not skip preview steps by default.
- Apply rules to the full font character set, not only the demo sentence.
- Process by glyph group; do not use one parameter set for all glyphs.
- For special symbols, prefer preprocessing in horizontal coordinates first, then produce the vertical result.
- Do not rely on only
vert/vrt2 substitutions as the whole solution.
- Do not rotate first and then blindly patch positions.
- If the user provides a reference image, prefer matching the reference while keeping the same grouping logic.
- When a parameter tweak is needed, adjust the minimum necessary group rather than rewriting the whole rule set.
- Before sending a user-facing test image, do your own basic inspection first; do not throw raw debug output at the user as a substitute for checking.
- When the result still feels off, inspect representative glyph bbox / center data with the audit script instead of blind re-guessing.
- For one-shot execution, prefer the bundled full-pipeline script so the output order stays consistent.
- In the current WeChat direct channel, local file delivery should prefer the channel’s real file-send path with an absolute path rather than relying on
MEDIA: lines alone.
Output expectations#
Typical outputs include:
- horizontal preview image
- vertical preview image
- vertical
.ttf
- test
.txt
- optional audit JSON / terminal report