Upgrade to Pro — share decks privately, control downloads, hide ads and more …

State of CJK issues and Kinsoku Shori in LibreO...

Avatar for Shinji Enoki Shinji Enoki
September 11, 2026

State of CJK issues and Kinsoku Shori in LibreOffice, 2026 edition

LibreOffice Conference 2026での発表資料です。
LibreOffice Conference 2026 slide
https://events.documentfoundation.org/libreoffice-conference-2026/talk/AVQR7U/

Avatar for Shinji Enoki

Shinji Enoki

September 11, 2026

More Decks by Shinji Enoki

Other Decks in Technology

Transcript

  1. Shinji Enoki (榎真治) Member of LibreOffice Japanese Team (2011-) •

    Membership Committee of The Document Foundation • Activity: organizing JA events, support JA communitiy, sometimes Ask libreoffice, translation and QA • Other communities: • Part-time staff of the Wikimedians of Japan User Group • Japan UNIX Society, KANSAI OPEN SOURCE, OpenStreetMap casual Mapper, etc. •
  2. What is Kinsoku Shori ( 禁則処理 )? Rules that control

    where a line can break in Japanese text • Prevents certain characters (punctuation, brackets, etc.) from starting or ending a line • Note: Chinese and Korean have similar but separate rules, this talk focuses on Japanese •
  3. Similar concepts in Western typography • Western typography has similar

    ideas: Widows and orphans ( 孤児行・寡婦行 ) • French spacing rules before "!" "?" ";" ":" • Hyphenation exceptions for proper nouns / short words • General avoidance of starting a line with comma/period/closing bracket •
  4. What is JLREQ? JLREQ : Japanese Layout Requirements • W3C

    document describing the rules of Japanese text layout • Covers line breaking, ruby, emphasis marks, and more • LibreOffice development references JLREQ. • Kinsoku Shori (this talk's focus) is one part of JLREQ • Actively maintained by W3C. You can submit feedback/issues too • https://www.w3.org/TR/jlreq/ •
  5. Kinsoku (§3.1.7 + §3.1.8) §3.1.7 Characters Not Starting a Line

    ( 行頭禁則 ) • Punctuation, closing brackets, etc. must not start a line • §3.1.8 Characters Not Ending a Line ( 行末禁則 ) • Opening brackets, etc. must not end a line • Both handled by ONE LibreOffice option: "Apply list of forbidden characters to the beginning and end of lines" (Format ▸ Paragraph ▸ Asian Typography) •
  6. Which characters are affected? • Not starting a line (

    行頭禁則 ) • • ): 、。 」』)}〉》】〕 ・ !? っゃゅょぁぃぅぇ ぉー々 Not ending a line ( 行末禁則 ) • 「『({〈《【〔
  7. • Hanging Punctuation (§3.1.9) ぶら下げ A different approach from Kinsoku:

    instead of moving the line break, the punctuation is allowed to hang outside the text margin • LibreOffice option: "Allow hanging punctuation" (Format ▸ Paragraph ▸ Asian Typography) • Note: the visual effect is easiest to see with a character grid (Text Grid) enabled •
  8. FILEOPEN DOC: wrong or different extend-leading for some documents compared

    to MS Word Bug 171275 Reported by Justin L (Collabora's mso-test) • DOC/DOCX: CJK line spacing differed from MS Word (regression) • Root cause: grid line count calculated in wrong order • Fixed in 27.2.0 / 26.8.1 by Jonathan • OK 25.2 NG 28.0.0
  9. No search results for vertical direction terms Bug 168783 Reported

    by Eyal Rozenberg • Vertical-direction terms didn't work in Help search • Fixed by Olivier Hallot (added help documentation) • Status: RESOLVED FIXED •
  10. The full-width conversion function is not working. (CJK-Japanese) Bug 173153

    Reported by Saburo • Katakana with dakuten (e.g. プロパティ ) wouldn't convert back to full-width • Root cause: text node capacity overflow • Fixed by Julien Nabet in 27.2.0 / 26.8.1 •
  11. Displayed font names do not follow the UI language :

    Bug 172879 Reported via ja-discuss mailing list, filed by Jonathan Clark • Windows daily builds regression: UI no longer shows Japanese font names • Not fix •
  12. isCJKIVSCharacter needs to support CJK Unified Ideographs Extension Block C

    to H for Unicode15: Bug 155820 Reported by DaeHyun • isCJKIVSCharacter only supports CJK Unified Ideographs Extension A/B; Unicode 15 added Extension Blocks C–H • Status: RESOLVED INSUFFICIENTDATA Ver 28.0.0 • OK NG
  13. Conclusion Introduced JLREQ Kinsoku Shori rules and how LibreOffice implements

    them • Reviewed CJK bugs fixed since last year's conference • Reviewed CJK bugs still open •