FONTLOG — 藍 / Ai Mincho Regular, Bold, Italic, version 1.002 (2026-11-07) ========================================================================== Files ----- AiMincho-Regular.ttf Regular weight 400 fsSelection REGULAR macStyle 0 AiMincho-Bold.ttf Bold weight 700 fsSelection BOLD macStyle 1 (bold) AiMincho-Italic.ttf Italic weight 400 fsSelection ITALIC macStyle 2 (italic) italicAngle -16.333 caret 100/29 All three: family "Ai Mincho" / ja "藍" (name IDs 1 and 16), style in IDs 2 and 17, version 1.002, line metrics hhea and win 1104/-344, typo 880/-120. There is no BoldItalic. Sections below "What this is" describe the Regular; "Bold and Italic" further down gives what differs. Declaring the family on the web ------------------------------- @font-face{font-family:"Ai Mincho";src:url(AiMincho-Regular.ttf) format("truetype");font-weight:400;font-style:normal} @font-face{font-family:"Ai Mincho";src:url(AiMincho-Bold.ttf) format("truetype");font-weight:700;font-style:normal} @font-face{font-family:"Ai Mincho";src:url(AiMincho-Italic.ttf) format("truetype");font-weight:400;font-style:italic} Measured in Chrome 156 (test_style_link.py): font-weight 700 and 600 use the Bold file, font-style italic uses the Italic file, pixel-identical with and without font-synthesis:none, so nothing is synthesised. Bold + italic together: with no BoldItalic file Chrome takes the Italic file and smears a synthetic bold over it, Japanese included. With font-synthesis:none the same text renders as plain Italic. Avoid em/i inside bold headings, or set h1 em,h2 em,h3 em{font-style:normal}. What this is ------------ A newspaper-style Japanese Mincho. Japanese glyphs from Shippori Mincho B1 Regular, made 90% flat (平体) with sturdier horizontals; Latin from Liberation Serif Regular (Times New Roman–metric design); built-in forms for 縦中横 (tate-chu-yoko) and for stacking half-width digits/letters upright in vertical text. Family (en-US): Ai Mincho Family (ja-JP): 藍 Style: Regular PostScript name: AiMincho-Regular Version 1.002 License: SIL Open Font License 1.1 (see OFL.txt). This derivative declares the Reserved Font Names "Ai Mincho" and "藍". Permission under condition 3 of the OFL, from the Copyright Holder of the Reserved Font Names "Ai Mincho" and "藍" (The Ai Mincho Project Authors (Rivas)): anyone may keep these names on a copy of this Font Software whose only changes are subsetting (removing glyphs, OpenType layout features, glyph names or other data, without altering the remaining glyph outlines or advance widths) and/or conversion to WOFF or WOFF2 for webfont delivery, provided each file keeps its copyright, trademark and license notices in its metadata. Such a copy remains under the OFL. Any other Modified Version must use a different primary font name. This permission applies to this version and later versions unless a later FONTLOG says otherwise. (OFL FAQ 2.6, 2.7, 2.12, 5.8, 5.10) Sources (all SIL OFL 1.1) ------------------------- 1. Shippori Mincho B1 Regular 3.110 — Copyright 2021 The Shippori Mincho Project Authors (https://github.com/fontdasu/ShipporiMincho). OFL 1.1, no Reserved Font Name. sha256 89403e4b2a9ca0db9f832b893cfbfd90506c7c674cd640ba8a0ee128c34de7a4 2. Liberation Serif Regular 2.1.5 — Digitized data copyright (c) 2010 Google Corporation, with Reserved Font Names Arimo, Tinos and Cousine; Copyright (c) 2012 Red Hat, Inc., with Reserved Font Name Liberation. OFL 1.1. Release tarball liberation-fonts-ttf-2.1.5.tar.gz from https://github.com/liberationfonts/liberation-fonts/releases/tag/2.1.5 (tarball sha256 7191c669bf38899f73a2094ed00f7b800553364f90e2637010a69c0e268f25d0, LiberationSerif-Regular.ttf sha256 058ea80864aef09a23f45cbec2bb5400bc3dfbdea01c3f10538a21fcb497fb74). The names Liberation / Arimo / Tinos / Cousine are not used in any font name of this derivative. Its trademark notice stays in name ID 7 of all three fonts, as OFL FAQ 3.7 requires ("Any trademark notices must remain in any derivative fonts"): "Liberation is a trademark of Red Hat, Inc. registered in U.S. Patent and Trademark Office and certain other jurisdictions." Build chain ----------- v1 make_variant.py Shippori B1 Regular, v=0.90 (90% 平体 about y=380), XY embolden ex=4 / ey=10 v2 build_v2.py tcy forms (hwid .half/.hwid 500, twid .twid 333/200) + taller vertical full-width digits v3 build_v3.py `vert` maps ASCII 0-9 A-Z a-z to the upright full-width vertical forms (縦積み); vertical digit forms 1.25x wider -> NewsMinchoSample-A-v3.ttf (sha256 c48681d95477335ca3e05d9194f51b6ace12c6553528e29748d79c05ea69591a) RC build_rc.py this release (all numbers below) build_rc.py NewsMinchoSample-A-v3.ttf ShipporiMinchoB1-Regular.ttf LiberationSerif-Regular.ttf AiMincho-Regular.ttf --scale 1.05 --bl 38 --lex 0 --ley 0 (helpers rc_latin.py, rc_symbols.py, make_variant.py; checks sanity_rc.py, test_rc.py, test_upright.py, test_installed.py, diff_rc.py, colour_metric.py; specimens specimen_rc.py) Changes in 1.002 (relative to 1.001) ------------------------ New glyphs are appended at the end of the glyph order, so existing glyph IDs are unchanged. Every existing glyph keeps its outline bytes, advance width and vertical metrics (compared glyph by glyph against 1.001 in all three styles). English forms, reached through GSUB `locl` only (no code points of their own). Japanese keeps the existing glyphs: * U+2014 — advance 1050 / 1034 / 934 (Regular / Bold / Italic); existing Regular glyph 1000 * U+2192 → advance 788 / 790 / 904 (Regular / Bold / Italic); existing Regular glyph 1000 * U+2190 ← advance 788 / 790 / 904 (Regular / Bold / Italic); existing Regular glyph 1000 * U+00D7 × advance 592 / 582 / 709 (Regular / Bold / Italic); existing Regular glyph 891 * U+00A7 § advance 525 / 509 / 525 (Regular / Bold / Italic); existing Regular glyph 964 * U+2212 − advance 592 / 582 / 709 (Regular / Bold / Italic); existing Regular glyph 776 * U+2026 … advance 1050 / 1034 / 934 (Regular / Bold / Italic); existing Regular glyph 1000 From Liberation Serif of each style with that style's Latin treatment: x1.05, baseline +38, Bold thinned -16/-6, except as below. → ← are moved: vertical centre at y 279, the middle of the x-height zone (Liberation had it at 212), and side bearings tightened to those of the new ×: Regular x 83..705, y 156..402, advance 788 Bold x 84..706, y 146..412, advance 790 Italic x 141..763, y 156..402, advance 904 Bold → ← √ are not thinned. Liberation Bold draws them at Regular weight, so they get a uniform offset: mean stroke ← 63.1, → 63.1, √ 69.4 (Regular 45.1 and 49.3), about 1.4 x Regular, the ratio of the Bold Japanese dash to the Regular one. The arrows keep the ink length of the Regular. GSUB now has scripts DFLT and latn. latn repeats every DFLT feature so Latin runs keep hwid, twid, vert and the rest. `locl` is registered under language system ENG of: latn, DFLT. Default language systems do not have it. Its lookup runs last, so vertical forms do not change. New characters from Liberation Serif of each style, same treatment, each with a vrt2 sideways form like the other proportional Latin: Ł ő ō ē İ ł ń ˢ Φ α β ζ ξ π τ √ ≤ U+0141 U+0151 U+014D U+0113 U+0130 U+0142 U+0144 U+02E2 U+03A6 U+03B1 U+03B2 U+03B6 U+03BE U+03C0 U+03C4 U+221A U+2264 New box drawing: * U+2500 ─ advance 1000, height and weight measured from the style's Japanese dash. Regular and Italic x -23..1023, y 357..403; Bold x -21..1021, y 348..413. The ink passes the advance exactly as far as that dash does, with flat ends, because a strict 0..1000 showed light seams at fractional sizes and positions. Italic is upright, identical to the Regular. * U+2502 │ added because U+2500 fell apart into separate strokes in upright vertical text. It is the `vert` and `vrt2` form of U+2500, on the vertical grid (advance 900), same stroke weight as U+2500. Regular and Italic x 477..523, y -93..853; Bold x 467..532, y -91..851. Kerning: Liberation's pairs that involve the new glyphs, scaled, as an extra lookup on `kern`: 5 / 4 / 8 pairs (Regular / Bold / Italic), involving α ζ ξ π τ. Existing pairs are unchanged. Liberation has no pair for Tō, so it is not kerned the way To is. Tables changed: glyf, loca, hmtx, vmtx, hhea and vhea (metric counts), maxp (glyph count), post, cmap, GDEF (classes for the new letters), GSUB, GPOS (kern only), OS/2 (Unicode range bits 7, 43 added), name (IDs 3 and 5), head (fontRevision, checksum). 1.001 files: Regular 607d46b352dc71d1c527058f68a9181bdaf128ce96c2ad98a36b957d51ae78fa Bold fe5a19630ff949421ab54f6fb7d9772ef6dd3b2c43a0ae218e860165e69b10cd Italic 775ce64855e349fdba1395bd171612e2307faf412bfef670ec647235223d2947 Changes in 1.001 (relative to 1.000) ------------------------ Metadata only. name IDs 0, 3, 5, 7, head fontRevision and the file checksum changed; every other table is byte-identical: * Liberation's trademark notice added as name ID 7. * Reserved Font Names "Ai Mincho" and "藍" declared in name ID 0 and OFL.txt. * Version raised to 1.001. 1.000 files: Regular b7aec5cf77528464ad3265b7bbb112975d5e8706130c5714f71bbcb6ec416324 Bold 7cce7969fb8b557097240734ffbad93bd19f630034b657484cc857599a75d25d Italic a63f44b51e0a2e082fbc83a8619d9e3714c2e9b544d71270ef2967ad83797bac Changes in 1.000 (relative to sample A v3) ------------------------------------------ Latin (205 glyphs replaced; outlines from Liberation Serif, decomposed, kept quadratic): * ASCII U+0020–007E, Latin-1 U+00A0–00FF except × ÷ ± ° § ¶ (kept from Shippori: Japanese symbol use, and ℃ is built from °; since 1.002 × and § also have Liberation forms, used in English text through `locl`), ı œ ʻ ʼ ˆ ˚ ˜ – ‘ ’ ‚ “ ” „ • ‹ › ⁄ ⁴ €. * Œ (U+0152) was not replaced. It is still the Shippori glyph in all three styles, advance 1091 (Bold 1152), because this step only replaced glyphs narrower than 1000 outside Latin-1. The list above is now the full 205. * Scale: UPM 2048->1000 x 1.05 (cap height 688 = kana height; x-height 482). Chosen by eye in mixed lines at 1.00 / 1.05 / 1.10: 1.10 makes capitals nearly as tall as the flattened kanji. * Baseline raised +38 units: exactly where the 90% squash puts the original baseline, so Latin sits in the flattened em box as in the original font (caps 38..726, centre 382 ≈ CJK centre 380). * Not squashed (no 平体 on Latin). * Emboldening: 0. Measured before deciding: mean stroke width (2·area/perimeter) kana 55.6, kanji 53.1, Shippori's own Latin in v3 60.6 (lc) / 62.3 (UC); Liberation x1.05 already 64.2 / 66.9 (stems ~89, hairlines ~40–46). +4/+10 would give 69.5 / 73.5, visibly darker than the kana. Visual check in body text agreed, so the colour match needed no extra weight. * Kerning: all of Liberation's GPOS kern pairs between replaced glyphs (113 pairs, scaled) as a new GPOS `kern` feature (DFLT). That is Liberation's complete kerning for these glyphs (Times-style, sparse). * Shippori-only Latin extras switched off (designs would not match): f-ligatures (liga, 5), c_t/s_t (dlig, 9), J/Q alternates (ss01/ss02/salt, 4 each). Combining-mark anchors on the replaced bases (146) remapped proportionally to the new bounding boxes (approximate). * Overlapping/self-intersecting contours (Å Ç ç from decomposed composites, condensed 4 and m) merged with skia-pathops. Derived Latin forms rebuilt from the new Latin with the v2/v3 rules (squash 0.90 like v2): * hwid (.half digits, .hwid A-Z a-z, period/comma/slash/parens/hyphen .half): 500 wide, ink 440/430. * twid (.twid digits 333 / period, comma 200): ink 296. * vertical stacking forms uniFF10-19/21-3A/41-5A.vert: digits stretched x1.204 so the 0 is as wide as in v3 (536); capitals ink <= 860; lowercase centred per glyph. Height: numeral box -> 0.92 x kanji face (sy 1.187, then 0.90) — same as v3. * full-width horizontal 0-9 A-Z a-z #$%&@ (Latin centred in the em, like the base did). * vrt2 sideways forms (.rotat, 221): rotated new glyphs, vertical advance = horizontal advance (v1 had squashed these to 90% width by accident). New full-width symbols (base space, then the same 90% squash + 4/10 as the kanji): < > ≦ ≧ ≠ | _ (strokes 40 like =+-, extents from =/), ∴ (from ・), ∞ (Liberation, thinned to the symbol stroke), ℃ (Shippori ° + Liberation C), " ' ` ^ (Latin centred, like #%). `vert` forms (rotated 90° clockwise) for < > ≦ ≧ ≠ | _ (UAX #50 R/Tr). `fwid` gains < > | ^ _ ` " '. Already present and unchanged: % & @ # $ ※ 〒 → ← ↑ ↓ ~ (arrows/~ already had vert forms). Line metrics: * hhea and OS/2 win ascent/descent 1160/-288 -> 1104/-344 (same 1448 line height). Their midpoint is now 380 = CJK centre. Chrome centres 縦中横 and sideways Latin on that midpoint, so the +56 shift that v2/v3 baked into the tcy glyphs is gone; horizontal text now sits centred in its line box. typo 880/-120 (ideographic em box) unchanged; USE_TYPO_METRICS off. Not changed: every kana and kanji outline and metric (verified glyph by glyph against v3: 0 differences). Bold and Italic --------------- Sources (all SIL OFL 1.1; the copyright lines are the same as the Regular's, so OFL.txt needed no change) Shippori Mincho B1 Bold 3.110 — Copyright 2021 The Shippori Mincho Project Authors. No Reserved Font Name. sha256 d20f3981afb8bceda5fdf8f0fb29ba51eb21518644612ccd8a183e5bd433e25a Liberation Serif Bold 2.1.5 — Digitized data copyright (c) 2010 Google Corporation; Copyright (c) 2012 Red Hat, Inc. Reserved Font Names Arimo, Tinos, Cousine, Liberation (none used in any font name here). Same release tarball. sha256 d754ba427cfe0bca54ae052384baa8f842da5bd6550ad4da024ac441e7a7d5ce Liberation Serif Italic 2.1.5 — same notices and tarball. sha256 0e3dea9f8d613e006ccfa62201f33e265d19167bd0907725c3e145368b04fc2e Build: make_rc.sh Bold ; make_rc.sh Italic ; make_rc.sh release The script chain is the Regular's with parameters added. With default arguments it still reproduces the Regular: v1, v2, v3 and the built font match glyph for glyph, layout tables included (cmp_fonts.py). The v3 step of the Regular is build_v3.py ... --digit-ink 612 --digit-sxmax 1.25. make_chain.sh Shippori master -> v1/v2/v3 for a given ex/ey Bold: make_chain.sh ShipporiMinchoB1-Bold.ttf OUT 0 10 build_rc.py v3 ShipporiMinchoB1-Bold.ttf LiberationSerif-Bold.ttf AiMincho-Bold.ttf --style Bold --scale 1.05 --bl 38 --lex -16 --ley -6 --cjk-ex 0 --cjk-ey 10 --digit-zero-w 536 --celsius-stroke 70 --restore 0.3 Italic: build_rc.py build_v3/A.ttf ShipporiMinchoB1-Regular.ttf LiberationSerif-Italic.ttf AiMincho-Italic.ttf --style Italic --scale 1.05 --bl 38 --lex 0 --ley 0 --forms-latin LiberationSerif-Regular.ttf Bold, Japanese: same 90% 平体. Horizontals +10, verticals +0. Stroke medians (scan lines through 十川日中目山田口工本三王), vertical / horizontal: Shippori Bold 119 / 28.5, after 平体 alone 118 / 26, Ai Mincho Bold 119 / 35.5 (Regular: 65 / 29 -> 69 / 36). Shippori's Bold thickens verticals only, so its horizontals equal the Regular's and ey 10 gives the same horizontal strength as the Regular. Verticals get no boost: they are already heavy and the 平体 does not thin them; ex only ate counters (dark 22px @1x, share of counters still open in 議鬱襲響驚鑑轟露曜擬職識臓醸讃纏: ex 0 / 4 / 7 = 0.70 / 0.64 / 0.61; ey 16 = 0.53). Emboldening was reduced by the counter-safety in 52 rare glyphs, none of them joyo kanji (Regular: 23). Bold, Latin: x1.05, baseline +38, kerning from the source (117 pairs). Thinned, XY -16 / -6, because Liberation Bold came out darker against the bold kana than Liberation Regular does against the Regular kana. Mean stroke (2*area/perimeter): kana 75.9, kanji 74.5; Latin before lc 98.8 UC 95.9 digits 102.7, after lc 88.2 UC 86.0 digits 91.3. lc/kana 1.30 before, 1.162 after; the Regular has 1.155. Bold, derived forms: same rules, three changes. --restore 0.3 (Regular 0.85): giving back 85% of the stem lost to condensing clogged hwid m and M, W and twid 0, 8 at Liberation Bold's 151-unit stems. Vertical digit forms keep the Regular's 536 wide 0 (--digit-zero-w) because following Shippori Bold's 0 would have stretched them x1.40. The C of ℃ has mean stroke 70 (Regular 54), matching Shippori Bold's heavier °. <>≦≧≠|_ keep stroke 40 like the Regular: Shippori Bold's own =+/ are the same weight as in its Regular. Italic: Latin from Liberation Serif Italic, x1.05, baseline +38, not thinned or emboldened, kerning from the source (112 pairs). Mean stroke lc 65.1 UC 65.9 digits 64.0 (Regular 64.2 / 66.9 / 65.4), kana and kanji unchanged. italicAngle and caret from the source. Compared with the Regular file at 1.001: 16,048 of 16,444 glyphs are identical, GSUB is identical. The 396 that differ are 198 proportional Latin glyphs and their 198 sideways vrt2 forms. Kept upright and identical to the Regular: kana, kanji, full-width forms, added symbols, hwid/twid, vertical stacking forms. Stacked or 縦中横 characters sit in the kanji grid, where a slant would read as a mistake and would lean out of its em box. Changed on purpose: the sideways vrt2 forms, which are the horizontal glyph turned 90 degrees. Otherwise Word/InDesign would show roman where Chrome (which rotates the horizontal glyphs) shows italic. Known limitations of Bold and Italic * Weak in Bold: =+/<>≦≧≠|_∞ stay light next to bold kanji (inherited from Shippori Bold's symbol weight). * Bold 縦中横 and stacking: narrow forms are lighter in wide letters (W, M, m) than in narrow ones (I, i, j). * Italic 縦中横 of 4+ digits (not recommended anyway) comes out italic, because Chrome squeezes the proportional digits; 1 to 3 digits use the upright forms. * Thinning Bold Latin by ey 6 moves its top and bottom edges in by 3 units (baseline 41 for flat glyphs, against 38). OS/2 capHeight/xHeight 685/479 are measured from +38, so they read about 3 units high. * Not tested: Word, InDesign, macOS, or an installed copy of the family. Tested: Chrome, and the GDI+ family grouping. English-only forms (— → ← × § − …) --------------------------- These characters draw their English form only when the text's language is English and the shaper has `locl` on (browsers do by default): lang="en", "en-US", "en-GB": English form, also in digit-only and punctuation-only runs such as 2024—2025 or a lone —. lang="ja": existing glyph, also after Latin (OpenAI——という). other languages (fr, de, zh): existing glyph. no lang attribute: the browser's own language decides. Always set lang. Japanese words inside lang="en" text take the English forms too unless they are marked lang="ja". Subsetting: keep the feature (pyftsubset --layout-features='*'). Without `locl` in the subset, English text shows the Japanese glyphs. Vertical text: `vert` runs first, so characters with a vertical form (— → ← …) keep it in every language; sideways English runs show the English form turned. Measured in Chrome only. Not tested: Safari, Firefox, Word, InDesign. Using the vertical features (CSS, Chrome/Edge) ---------------------------------------------- writing-mode: vertical-rl; 縦積み (newspaper default here): type digits/letters half-width and set text-orientation: upright; the font's `vert` stacks them one per em like kanji. Write decimals with 中黒 (3・4). 縦中横: 12 2 characters: add font-feature-settings:"hwid" 1 (half-width numerals/letters) 3 characters (3.4, 100): no setting needed; Chrome fits them (twid forms are in the font). 4+ characters: not recommended (ink becomes ~1.06 em at 2026); stack instead. Long Latin words lying sideways: wrap them in a span with text-orientation: mixed. Word / InDesign: the `vrt2` sideways forms and `vert` work as usual. Known limitations (RC) ---------------------- * " ' ` ^ follow the base convention (Latin glyph centred), so they look small next to <>=. * ∞ and the C of ℃ keep Liberation's contrast and read slightly darker than =+. * § (Shippori, kept) has a self-intersecting contour inherited from the base font. * Hinting: none (as the base). Combining-accent positioning on Latin is approximate. * An ASCII space set upright in vertical text takes one full (flattened) em slot.